2012-12-04 1 views
2

Django 및 MySQL에 내 응용 프로그램이 있습니다. 내 모델에 TextField로 지정된 여러 필드가 있습니다. syncdb를 실행할 때 내 모델의 테이블이 만들어지고 지정된 열이 다음과 같이 만들어집니다. longtext 데이터 형식, 지금까지 그렇게 좋았습니다.Django-MySQL 사용 가능 Row_Format = syncdb로 압축

하지만하려고 할 때, 내가하고 물방울을 텍스트로 열 유형을 변경하고 문제가 해결되지 않는 다음과 같은 오류를

DatabaseError: (1118, 'Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs ")

를 얻을 표에 정보를 입력합니다.

나는이 오류에 대해 읽었으며 행별로 소득 정보가 8126byby 이상 있기 때문입니다. 그래서 Antepode 대신 Barracuda 파일 형식을 사용하도록 MySQL 구성을 변경했습니다.이 파일은 정보를 다른 파일로 보내는 압축을 허용합니다.

하지만이

다음을 지정하는 방법이, MySQL의 문서 ( https://dev.mysql.com/doc/refman/5.5/en/innodb-compression-usage.html) 내가 테이블을 만들 때 ROW_FORMAT = COMPRESSED를 지정해야하지만,이 syncdb에 의해 수행되는 것을 저에게 말한다에, 문제가 해결되지 않았다 syncdb가 테이블을 생성 할 때의 설정 또는 syncdb를 사용하지 않고 수동으로 테이블을 생성해야합니까?

다른 제안 사항은 내 신청서에 여러 시트와 보고서를 저장해야합니다. 내 테이블에 문서의 섹션별로 열을 정의했습니다.

SET GLOBAL innodb_file_format = Barracuda;
SET GLOBAL innodb_file_format_check = ON; SET GLOBAL innodb_format_max = Barracuda; SET GLOBAL innodb_file_per_table = ON;

:

답변

1

내가 함께 MySQL의에서 바라쿠다에 파일 형식을 설정하고 테이블 전역 변수 당 하나 개의 파일을 사용하려면 이노

DatabaseError: (1118, 'Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs ")

에게 처음으로 우리가 사용하는 MySQL의에서 빅 데이터 행을 추가하는 오류를 해결

저는 querys에 phpmyadmin을 사용했습니다.

syncdb를 실행 한 후에 큰 행에 문제가있는 테이블로 이동하여 Operations-> Table Options 탭으로 이동 한 다음 'ROW_FORMAT'을 'COMPRESS'로 수정하십시오.

도움이 되었기를 바랍니다.