2010-11-29 12 views
5

검색된 내용은 docs이지만 아무 소용이 없습니다.
열거 형 값의 최대 길이는 무엇입니까? 즉 문자열 리터럴은 무엇입니까?ENUM 값의 최대 길이는 얼마입니까?

+1

정규화 (별도의 테이블과 외래 키 관계)를 사용하면 걱정할 필요가 없습니다. –

답변

6

제한은 리터럴 문자열 길이가 아니라 테이블 정의입니다. 각 테이블은 테이블 정의를 포함하는 .frm 파일을 가지고

것을

MySQL documentation 상태. 서버는 다음 표현식을 사용하여 파일에 저장된 테이블 정보의 일부를 64KB의 상한에 대해 확인합니다.

이어서 테이블 정의의 대략적인 크기를 표현하는 ad-hoc 방정식이 뒤 따른다.

몇 가지 필드가있는 테이블에서 이미 63136 자의 열거 형을 얻었으며 .frm은 71775 바이트 (70KB보다 약간 큽니다)이므로 대략 한도가됩니다. 그 시점에서, MySQL은 #1117 - Too many columns을 불평했는데, 이는 적어도 말하기는 오해했습니다.

주목할 만하게/이상하게/가치있게 생각하면 열거 형의 문자 집합이 최대 길이를 변경합니다. - 일반 문자를 사용하는 경우에도 각각 1 바이트 만 필요합니다.

3

ENUM 열은 최대 65,535 개의 고유 요소를 가질 수 있습니다. 실용적인 제한은 3000보다 작습니다. 테이블은 그룹으로 간주되는 ENUM 및 SET 열 중에서 255 개를 넘는 고유 한 요소 목록 정의를 가질 수 없습니다.

관련 문제