DBAtlas · Atlas für Datenbankbetrieb

1118: ER_TOO_BIG_ROWSIZE: Row size too large

MySQL

Was bedeutet das?

Die Zeilengröße der Tabelle, die du definierst, überschreitet die von der Storage Engine erlaubte maximale Zeilengröße. Die maximale Zeilengröße für Nicht-BLOB/TEXT-Spalten beträgt 65535 Bytes; InnoDB hat zusätzliche, von der Seitengröße abhängige Limits.

Ursache

Definition vieler breiter Spalten (vor allem langer VARCHAR/CHAR); bis zu 4 Bytes pro Zeichen in Multibyte-Zeichensätzen wie utf8mb4; oder große Spalten, die im COMPACT/REDUNDANT-Zeilenformat von InnoDB inline gespeichert werden.

Lösung

Wandle einige große Spalten in TEXT/BLOB um (diese können off-page gespeichert werden); verkleinere unnötige oder sehr breite Spalten oder teile die Tabelle in zwei auf. In InnoDB hilft ROW_FORMAT=DYNAMIC oder COMPRESSED, weil große Spalten off-page ausgelagert werden: ALTER TABLE my_table ROW_FORMAT=DYNAMIC; Berücksichtige außerdem innodb_page_size.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank