DBAtlas · Atlas d'exploitation des bases de données

1118: ER_TOO_BIG_ROWSIZE: Row size too large (taille de ligne trop grande)

MySQL

Que signifie cette erreur ?

La taille de ligne de la table que vous définissez dépasse la taille de ligne maximale autorisée par le moteur de stockage. La taille de ligne maximale pour les colonnes non BLOB/TEXT est de 65535 octets ; InnoDB impose des limites supplémentaires qui dépendent de la taille de page.

Cause

Définition de nombreuses colonnes larges (notamment de longs VARCHAR/CHAR) ; chaque caractère occupant jusqu'à 4 octets dans les jeux de caractères multioctets comme utf8mb4 ; ou grandes colonnes stockées en ligne dans le format de ligne COMPACT/REDUNDANT d'InnoDB.

Comment la corriger

Convertissez certaines grandes colonnes en TEXT/BLOB (elles peuvent être stockées hors page) ; réduisez les colonnes inutiles ou très larges, ou scindez la table en deux. Dans InnoDB, utiliser ROW_FORMAT=DYNAMIC ou COMPRESSED aide en déplaçant les grandes colonnes hors page : ALTER TABLE my_table ROW_FORMAT=DYNAMIC; Tenez aussi compte d'innodb_page_size.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur