DBAtlas · Atlas de operações de banco de dados

1118: ER_TOO_BIG_ROWSIZE: Row size too large

MySQL

O que significa?

O tamanho de linha da tabela que você está definindo excede o tamanho máximo de linha permitido pelo storage engine. O tamanho máximo de linha para colunas que não são BLOB/TEXT é 65535 bytes; o InnoDB tem limites adicionais que dependem do tamanho de página.

Por que acontece?

Definir muitas colunas largas (especialmente VARCHAR/CHAR longos); cada caractere ocupando até 4 bytes em conjuntos de caracteres multibyte como utf8mb4; ou colunas grandes armazenadas inline no formato de linha COMPACT/REDUNDANT do InnoDB.

Como resolver

Converta algumas colunas grandes para TEXT/BLOB (que podem ser armazenadas fora da página); reduza colunas desnecessárias ou muito largas, ou divida a tabela em duas. No InnoDB, usar ROW_FORMAT=DYNAMIC ou COMPRESSED ajuda ao mover colunas grandes para fora da página: ALTER TABLE my_table ROW_FORMAT=DYNAMIC; Considere também o innodb_page_size.

Abrir no DBAtlas →

Mais entradas deste banco