MySQL 행 크기 제한 수정 방법
"행 크기가 너무 큼(> 8126)" 오류가 발생하면 허용되는 최대 행 크기를 나타냅니다. MySQL이 초과되었습니다. 이 문제를 해결하려면 특정 테이블 디자인 고려 사항과 데이터베이스 구성 조정을 구현할 수 있습니다.
권장 사항
Stack Exchange에서 제안된 제안 솔루션에는 my.cnf 파일의 설정을 수정하는 것이 포함됩니다.
-
Barracuda 파일 형식 활성화: Barracuda 파일을 사용하도록 InnoDB 구성 innodb_file_format=Barracuda를 설정하여 형식을 지정합니다. 이렇게 하면 BLOB 데이터의 일부를 인라인으로 저장할 필요가 없어 행 크기가 줄어듭니다.
-
ROW_FORMAT=COMPRESSED 사용: 테이블의 행 형식을 ROW_FORMAT=COMPRESSED로 변경합니다. 이 형식은 압축을 적용하여 BLOB 데이터의 크기를 줄입니다.
예제 명령:
ALTER TABLE table_name
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;
로그인 후 복사
-
MyISAM으로 대체: In 위의 조치로 문제가 해결되지 않으면 MyISAM을 내부 데이터용 임시 저장 엔진으로 사용하는 것이 좋습니다. my.cnf 파일에 다음 줄을 추가합니다.
internal_tmp_disk_storage_engine=MyISAM
로그인 후 복사
Considerations
-
테이블 스키마 검토: 테이블의 열을 검사합니다. 및 해당 데이터 유형. 과도한 데이터가 포함된 열을 TEXT 또는 BLOB으로 변경하는 것이 좋습니다.
-
동적 또는 압축된 행 형식 사용: 테이블에 대한 ROW_FORMAT=DYNAMIC 또는 ROW_FORMAT=COMPRESSED 옵션은 데이터의 공간 활용을 최적화하는 데 도움이 될 수 있습니다. -무거운 행.
-
샤딩 고려: 테이블에 상당한 양의 데이터가 포함되어 있으면 여러 데이터베이스나 테이블에 걸쳐 데이터를 분할하는 것을 고려하세요. 이렇게 하면 각 테이블의 행 크기가 줄어듭니다.
위 내용은 MySQL의 '행 크기가 너무 큼' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!