A.2.10. Eroare Tabelul este plin
Există câteva cazuri când apare această eroare:
Vechea versiune a MySQL (până la 3.23.0) este utilizată, iar tabela temporară plasată în memorie devine mai mare decât octeții tmp_table_size. Pentru a rezolva această problemă, puteți utiliza opțiunea -O tmp_table_size = #. astfel încât mysqld mărește dimensiunea tabelelor temporare sau opțiunea SQL SQL_BIG_TABLES. înainte de a emite o interogare discutabilă (consultați Secțiunea 5.5.6, "SET Command Syntax"). De asemenea, puteți porni mysqld cu opțiunea -big-tables - efectul aici va fi același ca și utilizarea SQL_BIG_TABLES pentru toate interogările. În versiunea 3.23 a MySQL, tabelele temporare sunt stocate în memorie după ce dimensiunea tabelului depășește tmp_table_size. sunt convertite automat în tabele bazate pe disc din tipul MyISAM.
Tabelele InnoDB sunt utilizate și spațiul din spațiul de masă InnoDB este epuizat. În acest caz, ar trebui să măriți spațiul de tabelă InnoDB.
Tabelele ISAM sau MyISAM sunt utilizate în sistemul de operare, care acceptă fișiere de până la 2 GB, iar fișierul de date sau fișierul index a ajuns la această limită.
Tabelele MyISAM sunt utilizate. și dimensiunea datelor solicitate sau indicele mai mare decât cel prevăzut în MySQL indicii de alocare (dacă nu sunt indicate în MAX_ROWS CREATE TABLE. MySQL alocă semne care furnizează conținut numai 4 GB de date). Dimensiunea maximă a datelor / indexului poate fi verificată prin
sau folosind myisamchk -dv database_data / table. Dacă problema este legată de indicii, o puteți remedia cu o comandă precum:
Specificați AVG_ROW_LENGTH numai pentru tabelele cu câmpuri de tip BLOB / TEXT. deoarece în acest caz MySQL nu poate optimiza spațiul necesar, bazându-se numai pe numărul de rânduri.