Porównaj ceny domen i usług IT, sprzedawców z całego świata

Jakie są maksymalne wiersze tabeli MySQL

Uwaga: szukałem tutaj innych podobnych pytań i żadne z pozostałych pytań, na które udzielono odpowiedzi, nie jest nawet w przybliżeniu podobne. Z tym.
.. Mam pytanie dotyczące tabeli MySql (a dokładniej konkretnych pól z tabeli - czyli
tweetów
lub
aktualizacji
).
Więc pytanie brzmi ... jaka jest maksymalna liczba wierszy w tabeli InnoDB? Oznacza to, że jeśli istnieje znacząca różnica między kwotami MyIsam, InnoDB i innych, które mogą być przechowywane, jeśli nie, to w ogóle.
Po drugie, jeśli stół stanie się naprawdę duży, jakie są najlepsze metody przechowywania - (ta sama tabela lub podział/wiele tabel/dbs)?
Czytałem, że Twitter otrzymuje około 100 milionów tweetów dziennie. W tym samym kontekście, jak moje drugie pytanie odnosi się do czegoś takiego jak Twitter?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie ma ograniczenia linii, ale

ograniczenie rozmiaru
http://dev.mysql.com/doc/refma ... .html
Bazy danych InnoDB:

Minimalny rozmiar obszaru tabel to 10 MB.
Maksymalny rozmiar obszaru tabel to cztery
miliard stron bazy danych (64 TB). to
Zobacz także maksymalny rozmiar stołu.

Możesz zawsze

podziel poziomo
http://dev.mysql.com/doc/refma ... .html
ich tabele, przechowując wiersze w wielu sekcjach tej samej tabeli, w wielu plikach.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

http://dev.mysql.com/doc/refma ... .html
http://dev.mysql.com/doc/refma ... .html
pozwoli Ci obliczyć limity rozmiaru klucza.
Ale pokornie zakładam, że nie chcesz przechowywać informacji, takich jak tweety, w silniku transakcyjnym z referencyjną integralnością i innymi funkcjami InnoDB, a ty

Zdecydowanie

nie przechowuj ich wszystkich w jednej tabeli w jednej instancji bazy danych. Umieszczasz je w wielu niezależnych bazach danych innych niż SQL, które umożliwiają szybkie dodawanie, a następnie pobieranie metainformacji (takich jak hashtagi, RT itp.) Do bardziej złożonej bazy danych. Prezentacje architektury DB na Twitterze są łatwe do znalezienia w Google (np.

http://www.slideshare.net/nkallen/q-con-3770885
http://www.slideshare.net/nkallen/q-con-3770885
).
Jeśli musisz przechowywać duże ilości danych w jednej tabeli, partycjonowanie jest twoim przyjacielem, a Postgres może mieć dla niego lepszą obsługę. Tabela partycjonowana to fizycznie wiele tabel, które logicznie wyglądają jak jedna tabela. Umieszczasz te tabele podrzędne (partycje) na różnych dyskach, niezależnie przeprowadzasz na nich konserwację itd. Ponadto „schemat gwiazdy” może pomóc w przypadku jednej bardzo długiej tabeli zawierającej tylko kolumny podstawowe i kilka tabel zawierających duże, ale opcjonalne kolumny.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Limit 64 TB dla tabeli ma następujące wyjątki:
  • Zakłada się, że
    innodb_page_size = 16K
    (domyślnie). Można to ustawić na potęgę 2 między 4K a 64K, zmieniając proporcjonalnie limit obszaru tabel.
  • Tabela
    PARTITIONed
    to zasadniczo zbiór „tabel podrzędnych” zorganizowanych razem i działających jak jeden duży stół. Limit liczby partycji do 5,6,7 wynosił 1024. Potem było 8192. Pomnóż to przez 64 TB.

OK, to daje tylko limit w

bajtów
... Ponadto zawiera narzuty i indeksy. Następnie musisz podzielić przez to, jak duży jest średni rekord, aby uzyskać maksymalną liczbę wierszy.
(Obliczenie średniego rozmiaru posta nie jest łatwe.)
Prosta odpowiedź:
Prawdopodobnie można łatwo uzyskać 1 bilion „małych” rekordów w tabeli InnoDB. Przy odrobinie wysiłku możesz osiągnąć 1000 bilionów. Ale podejrzewam, że twój dyskietkowy budżet zostanie wcześniej wyczerpany. Poza tym wykonanie wszystkich
INSERTs
potrzebnych do wypełnienia zajęłoby lata!
Tak więc realistyczna odpowiedź brzmi: MySQL może obsłużyć „nieograniczoną” liczbę wierszy.
W prawdziwym życiu? Słyszałem o kilku tabelach z ponad miliardem wierszy, nawet z 15 miliardami.
Zobacz moje
limity
http://mysql.rjweb.org/doc.php/limitsale to nie mówi więcej o kwestii strun.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się