Die Frage wurde auf serverfault gestellt auch.
Vielleicht möchten Sie einen Blick auf diesen Artikel werfen was eine Menge über MySQL-Zeilengrößen erklärt. Es ist wichtig zu beachten, dass selbst wenn Sie TEXT- oder BLOB-Felder verwenden, Ihre Zeilengröße immer noch über 8 KB liegen kann (Grenze für InnoDB), da die ersten 768 Bytes für jedes Feld inline auf der Seite gespeichert werden.
Der einfachste Weg, dies zu beheben, ist die Verwendung des Barracuda-Dateiformats mit InnoDB. Dadurch wird das Problem im Grunde genommen vollständig beseitigt, indem nur der 20-Byte-Zeiger auf die Textdaten gespeichert wird, anstatt die ersten 768 Bytes zu speichern.
Die Methode, die dort für das OP funktionierte, war:
-
Fügen Sie Folgendes zu
my.cnf
hinzu Datei unter[mysqld]
Abschnitt.innodb_file_per_table=1 innodb_file_format = Barracuda
-
ALTER
die zu verwendende TabelleROW_FORMAT=COMPRESSED
.ALTER TABLE nombre_tabla ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
Es besteht die Möglichkeit, dass das oben Gesagte Ihre Probleme immer noch nicht löst. Es ist ein bekannter (und bestätigter) Fehler
mit der InnoDB Engine, und eine vorläufige Lösung besteht darin, auf MyISAM zurückzugreifen Motor als Zwischenspeicher. Also in Ihrer my.cnf
Datei:
internal_tmp_disk_storage_engine=MyISAM