Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Änderungslimit für Mysql-Zeilengröße zu groß

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:

  1. Fügen Sie Folgendes zu my.cnf hinzu Datei unter [mysqld] Abschnitt.

    innodb_file_per_table=1
    innodb_file_format = Barracuda
    
  2. ALTER die zu verwendende Tabelle ROW_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