MySQL은 UTF-8 테이블의 VARCHAR 길이를 어떻게 해석합니까?

DDD
풀어 주다: 2024-11-21 07:25:11
원래의
325명이 탐색했습니다.

How Does MySQL Interpret VARCHAR Lengths in UTF-8 Tables?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿