보고서를 생성 할 목적으로 정규화 된 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로 변경되는 이유는 무엇입니까?