보고서를 생성 할 목적으로 정규화 된 db 구조를 임시 테이블로 병합하는 일부 엔지니어가 있습니다. 열은 다음과 같이 지정됩니다 TEXT NOT NULL( "왜 그들이 그렇게 하는가?"를 알고 있습니다.이 문제를 해결한다고 가정하겠습니다).
Linux에서는 InnoDB 플러그인 1.0.9와 함께 MySQL 5.1.48 커뮤니티 RHEL5를 사용합니다.
MyISAM을 사용할 때 최대 열 또는 최대 행 길이의 테이블 크기 제한이 발생하지 않았습니다 (조사 중에 2598에서 최대 열 제한을 초과했습니다 (2599 번째 오류는 1117을 발생시킵니다). InnoDB를 사용하면 한계에 도달합니다. 테이블 (데이터 삽입 없음) :
1 행의 오류 1118 (42000) : 행 크기가 너무 큽니다. BLOB를 계산하지 않고 사용 된 테이블 유형의 최대 행 크기는 8126입니다. 일부 열을 TEXT 또는 BLOB로 변경해야합니다.
다음에 대한 답변을 찾고 있습니다.
로트의 v / v / b / t 열을 사용할 때 행 크기 파티클을 결정하는 자세한 공식은 무엇입니까?
varchar(N)열 (N은 1에서 512 사이), UTF8 문자 세트 (* 3) 및 실패 할 때까지 테이블이 가져 오는 열 수를 사용하여 몇 가지 다른 형식을 시도했습니다 . 내가 시도한 콤보 중 어느 것도 실제 테스트 결과와 일치하는 값을 제공하지 않습니다.행 크기를 계산할 때 고려해야 할 다른 '오버 헤드'는 무엇입니까?
varchar (109) 열이있는 테이블 만들기에서 varchar (110) 열로 갈 때 오류 메시지가 8126에서 65535로 변경되는 이유는 무엇입니까?