MalyKazio
5.08.2008, 12:48:52
Witam,
Skrypt generuje mi automatycznie na podstawie danych z bazy rekordy do innej tabeli. Jeden rekord w jednej tabeli może pociągnąć za sobą nawet 1000 wpisów w drugiej tabeli. W chwili obecnej jest tam ponad 1.700.000 rekordów. W związku z tym mam pytanie. Czy MySQL posiada jakieś ograniczenie ilości rekordów? Są to nieduże rekordy, zawierają wyłącznie liczby.
nospor
5.08.2008, 13:01:01
smarcz
5.08.2008, 13:01:28
Jak dobrze zrozumiałem - chcesz ograniczyć ilość wykonywanych rekordów. W zapytaniu które wykonujesz powinieneś wstawić klazurę LIMIT.
W moim przypadku aby odczytać 10 rekordów od 1 było by takie:
SELECT * FROM `tabela` WHERE 1 LIMIT 1, 10
przy czym pierwsza liczba oznacza od którego rekordu zaczynam, druga o ile rekordów się przesuwam.
Pozdrawiam!!!
MalyKazio
5.08.2008, 13:11:18
Nie, nie, nie... Źle się wyraziłem. Nie chodzi mi o ograniczanie ilości pobieranych rekordów przy wykonywaniu zapytania. Chodziło mi, czy baza ma jakieś ograniczenie w ilości rekordów, które można zapisać w jednej tabeli (ilości przechowywanych rekordów w samej bazie)
piotrek24
5.08.2008, 13:34:26
No ilość jaką można dodać zależy chyba od klucza podstawowego i od tego jaki to typ danych... Jeśli jako klucz ustawisz typ TINYINT no to nie dodasz więcej jak 127 czy 255 rekordów. Nie próbowałem ale tak myślę.
nospor
5.08.2008, 13:41:29
http://dev.mysql.com/doc/refman/5.0/en/myi...age-engine.htmlCytat
There is a limit of 232 (~4.295E+09) rows in a MyISAM table. If you build MySQL with the --with-big-tables option, the row limitation is increased to (232)2 (1.844E+19) rows. See Section 2.4.15.2, “Typical configure Options”. Binary distributions for Unix and Linux are built with this option.
Obczaj sobie reszte silników.
oczywiscie jesli masz pole autoincrement, to zalezy ono od typu inta jaki mu nadasz, wiec i tu masz dodatkowe ograniczenie
ps: te 232 to 2 do 32, a te (232)2 to 2 do 32 do 2. Zjadlo tu potegi przy formatowaniu
MalyKazio
5.08.2008, 13:47:37
Pola są typu int, nie ma przy ty pól auto increment. Struktura wygląda mniej więcej tak: IDPODSTAWOWY (INT - z innej tabeli pobierany), IDPOWIAZANY (INT - z tej samej tabeli co idpodstawowy)
Dziękuję za informacje. 4 miliardy rekordów limitu. Oj chyba muszę myśleć o przebudowie tabeli w inny sposób, bo mogę limit osiągnąć szybciej niż mi się wydaje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.