DBAtlas · Atlas de operaciones de bases de datos

1118: ER_TOO_BIG_ROWSIZE: Row size too large

MySQL

¿Qué significa?

El tamaño de fila de la tabla que define supera el tamaño máximo de fila permitido por el motor de almacenamiento. El tamaño máximo de fila para columnas que no son BLOB/TEXT es de 65535 bytes; InnoDB tiene límites adicionales que dependen del tamaño de página.

¿Por qué ocurre?

Definir muchas columnas anchas (sobre todo VARCHAR/CHAR largos); cada carácter ocupa hasta 4 bytes en juegos de caracteres multibyte como utf8mb4; o columnas grandes almacenadas inline en el formato de fila COMPACT/REDUNDANT de InnoDB.

Cómo solucionarlo

Convierta algunas columnas grandes a TEXT/BLOB (pueden almacenarse fuera de página); reduzca las columnas innecesarias o muy anchas, o divida la tabla en dos. En InnoDB, usar ROW_FORMAT=DYNAMIC o COMPRESSED ayuda moviendo las columnas grandes fuera de página: ALTER TABLE my_table ROW_FORMAT=DYNAMIC; Tenga en cuenta también innodb_page_size.

Abrir en DBAtlas →

Más entradas de este motor