MySQL에서 VARCHAR 길이 및 UTF-8 디코딩
MySQL에서 VARCHAR 필드를 생성하는 동안 데이터 저장 용량에 대한 일반적인 오해가 발생합니다. . 사용자는 UTF-8 테이블의 VARCHAR(32) 필드가 32바이트 또는 32자 중 더 큰 쪽을 수용할 수 있다고 가정할 수 있습니다. 그러나 실제 해석은 사용되는 MySQL 버전에 따라 다릅니다.
버전 4와 버전 5
4.1 이전의 MySQL 버전에서는 VARCHAR 길이가 바이트 단위로 측정되었습니다. 따라서 VARCHAR(32) 필드는 최대 32바이트의 데이터를 저장할 수 있습니다. 그러나 MySQL 버전 5 이상에서는 VARCHAR 길이가 문자 단위로 해석됩니다. 따라서 UTF-8 테이블의 VARCHAR(32) 필드는 최대 32자를 포함할 수 있습니다.
공식 MySQL 설명서
이 문제를 명확히 하기 위해 공식 MySQL 5 문서에는 다음과 같이 명시되어 있습니다.
"MySQL은 문자 열 정의의 길이 사양을 문자 단위로 해석합니다. (MySQL 4.1 이전에는 열 길이가 바이트 단위로 해석되었습니다.) 이는 CHAR, VARCHAR 및 TEXT 유형에 적용됩니다."
UTF-8의 영향
또한 사용된 문자 세트는 VARCHAR 열의 최대 길이에 영향을 미칠 수 있습니다. 예를 들어 UTF-8 문자에는 문자당 최대 3바이트가 필요할 수 있습니다. 따라서 UTF-8을 사용하는 VARCHAR 컬럼은 최대 21,844자까지 선언할 수 있다. 이는 최대 행 크기 65,535바이트로 제한됩니다.
위 내용은 MySQL은 UTF-8 테이블의 VARCHAR 길이를 어떻게 해석합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!