Ce este limita superioară de înregistrări pentru baza de date MySQL masă. Am'm întrebam despre autoincrement domeniu. Ce s-ar întâmpla dacă am adăuga milioane de înregistrări? Cum să se ocupe de astfel de situații? Thx!
Cea mai mare valoare de un întreg are prea puțin de-a face cu un număr maxim de rânduri puteți stoca într-un tabel.
L'e adevărat că, dacă utilizați un int sau bigint ca cheie primară, puteți avea cât mai multe randuri ca numărul de valori unice în date tipul de cheie primară, dar nu't au de a face dvs. de cheie primară un număr întreg, ai putea face un CHAR(100). Ai putea, de asemenea, declar cheia primară pe parcursul a mai mult de o coloană.
Există și alte constrângeri pe dimensiunea de masă în afară de numărul de rânduri. De exemplu, ai putea folosi un sistem de operare care are o dimensiune de limitare. Sau ai putea avea o 300GB hard disk care poate stoca doar 300 de milioane de rânduri dacă fiecare rând este 1KB în dimensiune.
Limitele de dimensiunea bazei de date este foarte mare:
http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html
La motorul de stocare MyISAM suporta 232 rânduri pe masă, dar puteți construi MySQL cu-cu-mare-mese` opțiunea de a face o susțină până la 264 rânduri pe masă.
http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html
La motorul de stocare InnoDB nu't par să aibă o limită privind numărul de rânduri, dar are o limită privind dimensiunea de masă de 64 de terabytes. Câte rânduri se incadreaza in aceasta depinde de dimensiunea de fiecare rând.
mysql int tipuri pot face destul de câteva rânduri: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
nesemnat int
mai mare valoare este 4,294,967,295
nesemnat bigint
mai mare valoare este 18,446,744,073,709,551,615
Am sugera, nu de a șterge date. Don't spun, dacă masa este mai mult de 1000 de trunchia capăt al mesei. Acolo trebuie să fie real logica de afaceri în plan cât timp are acest utilizator a fost inactiv. De exemplu, dacă este mai mult de 1 an, apoi le-a pus într-un alt tabel. Ar trebui acest lucru să se întâmple săptămânal sau lunar în întreținere script în mijlocul unui timp de lent.
Atunci când tu a alerga în mai multe rânduri în tabel atunci ar trebui să înceapă sharding mese sau de partiționare și pune datele vechi în vechile tabele de an, cum ar fi users_2011_jan, users_2011_feb sau de a folosi numere pentru luna. Atunci schimbă-ți programare pentru a lucra cu acest model. Poate face un tabel nou cu mai puține informații pentru a rezuma datele în mai puțin de coloane și apoi se referă numai la cel mai mare partiționat tabele atunci când aveți nevoie de informații suplimentare, cum ar fi atunci când utilizatorul este vizualizarea profilului lor. Toate acestea ar trebui să fie luate în considerare foarte atent, astfel încât, în viitor, e't prea scump pentru a re-factor. Ai putea pune, de asemenea, numai utilizatorii care vine la site-ul dvs. tot timpul într-un tabel și utilizatorii care nu vin într-un arhivate set de tabele.
În InnoDB, cu o limită privind dimensiunea de masă de 64 de terabytes și un MySQL row-limită de dimensiune de 65,535 nu poate fi 1,073,741,824 rânduri. Care ar fi numarul minim de înregistrări utilizarea maximă rând-limita de dimensiune. Cu toate acestea, mai multe înregistrări pot fi adăugate, dacă rândul dimensiunea este mai mică .
Potrivit Scalabilitate și Limitele în secțiunea http://dev.mysql.com/doc/refman/5.6/en/features.html, Suport MySQL pentru baze de date mari. Ei folosesc MySQL Server cu baze de date care conțin 50 de milioane de discuri. Unii utilizatori folosesc MySQL Server cu 200.000 de mese și despre 5,000,000,000 rânduri.
marimea maxima A liniei pentru o anumită masă este determinată de mai mulți factori:
Reprezentarea internă a unui tabel MySQL are un maxim rând dimensiunea limita de 65,535 bytes, chiar dacă motorul de stocare este capabil de sprijinirea mai mare rânduri. BLOB și coloane de TEXT contribui doar 9 la 12 bytes spre rând dimensiunea limită pentru conținutul lor sunt stocate separat de restul rând.
Marimea maxima a liniei pentru o InnoDB masă, care se aplică la date stocate local într-o bază de date pagina, este mai puțin decât o jumătate de pagină. De exemplu, marimea maxima a liniei este puțin mai mică decât 8KB pentru default 16KB InnoDB dimensiune de pagină, care este definit de innodb_page_size opțiune de configurare. "Limitele pe Tabele InnoDB".
Dacă un rând care conține variabila-lungimea coloanelor depășește InnoDB maxim rând dimensiune, InnoDB selectează lungime variabilă coloane de externe off-page depozitare până la rând se încadrează în InnoDB rând limită de dimensiune. Cantitatea de date stocate local pentru lungime variabilă coloane care sunt stocate off-page diferă de rând format. Pentru mai multe informații, a se vedea "InnoDB Rând de Depozitare și de Rând Formate".
Diferite formate de stocare a folosi diferite sume de page header și trailer de date, care afectează spațiul de stocare disponibil pentru rânduri.
Link-ul http://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html
Rând O Limită De Dimensiune
Marimea maxima a liniei pentru o anumită masă este determinată de mai mulți factori:
Reprezentarea internă a unui tabel MySQL are un maxim rând limită de dimensiune de 65,535 bytes, chiar dacă motorul de stocare este capabilă să suporte mai mare rânduri. BLOB și coloane de TEXT contribui doar 9 la 12 bytes spre rând dimensiunea limită pentru conținutul lor sunt stocate separat de restul de rând.
Marimea maxima a liniei pentru o InnoDB masă, care se aplică la datele stocate local într-o bază de date pagina, este mai puțin decât o jumătate de pagină de 4KB, 8KB, 16KB, și 32KB innodb_page_size setări. De exemplu, marimea maxima a liniei este puțin mai mică decât 8KB pentru default 16KB InnoDB dimensiunea paginii. Pentru 64 de pagini, maxim rând dimensiunea este puțin mai mică decât 16KB. A se vedea Secțiunea 15.8.8, "Limitele pe Tabele InnoDB".
Dacă un rând care conține variabila-lungimea coloanelor depășește InnoDB maxim rând dimensiune, InnoDB selectează lungime variabilă coloane de externe off-page depozitare până la rând se încadrează în InnoDB rând limită de dimensiune. Cantitatea de date stocate local pentru lungime variabilă coloane care sunt stocate off-page diferă de rând format. Pentru mai multe informații, consultați Secțiunea 15.11, "InnoDB Rând de Depozitare și de Rând Ce".
Diferite formate de stocare a folosi diferite sume de page header și trailer de date, care afectează spațiul de stocare disponibil pentru rânduri.
Pentru informații despre InnoDB rând formate, a se vedea Secțiunea 15.11, "InnoDB Rând de Depozitare și de Rând Ce", și Secțiunea 15.8.3, "Fizică Rând Structura de Tabele InnoDB".
Pentru informații despre formate de stocare MyISAM, a se vedea Secțiunea 16.2.3, "Tabel MyISAM Formate de Stocare".
http://dev.mysql.com/doc/refman/5.7/en/innodb-restrictions.html
Nu există nici o limită. Depinde doar de memorie liber și sistemul de dimensiunea maximă a fișierului. Dar asta nu't înseamnă că ar trebui't să ia o măsură de precauție în abordarea memorie de utilizare în baza de date. Întotdeauna a crea un script care poate șterge rânduri care sunt scoase din uz sau care va ține nr. total de rânduri într-un anumit personaj, să zicem o mie.