DBAtlas · 데이터베이스 운영 아틀라스

1118: ER_TOO_BIG_ROWSIZE: Row size too large

MySQL

의미

정의하려는 테이블의 행 크기가 스토리지 엔진이 허용하는 최대 행 크기를 초과한다. BLOB/TEXT가 아닌 컬럼의 최대 행 크기는 65535바이트이며, InnoDB에는 페이지 크기에 따른 추가 한도가 있다.

원인

넓은 컬럼(특히 긴 VARCHAR/CHAR)을 많이 정의했거나, utf8mb4 같은 멀티바이트 문자 집합에서 문자당 최대 4바이트를 차지하거나, InnoDB의 COMPACT/REDUNDANT 행 형식에서 큰 컬럼이 인라인으로 저장된 경우다.

해결 방법

일부 큰 컬럼을 TEXT/BLOB로 변환하거나(off-page 저장 가능), 불필요하거나 너무 넓은 컬럼을 줄이거나, 테이블을 둘로 분할한다. InnoDB에서는 ROW_FORMAT=DYNAMIC 또는 COMPRESSED를 사용하면 큰 컬럼이 off-page로 이동되어 도움이 된다: ALTER TABLE my_table ROW_FORMAT=DYNAMIC; innodb_page_size도 고려한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목