MySQL VARCHAR 길이 및 UTF-8: 바이트 대 문자
MySQL 테이블에서 VARCHAR 필드를 생성할 때 VARCHAR 필드를 생성하는 방법을 이해하는 것이 중요합니다. 지정된 길이가 해석됩니다. 4.1 이전의 MySQL 버전에서는 VARCHAR 길이가 바이트 단위로 정의되었습니다. 그러나 MySQL 4.1부터는 길이가 문자 단위로 계산됩니다.
UTF-8 테이블의 VARCHAR(32) 필드는 32바이트가 아닌 32자를 나타냅니다. 이는 UTF-8이 가변 길이 인코딩이기 때문에 각 문자가 여러 바이트(최대 4바이트)를 차지할 수 있기 때문입니다.
버전 5에 대한 공식 MySQL 문서에는 다음과 같이 명시되어 있습니다.
"MySQL 문자 열 정의의 길이 지정을 문자 단위로 해석합니다. 이는 CHAR, VARCHAR 및 TEXT 유형에 적용됩니다."
단, 최대 길이는 VARCHAR 열도 UTF-8의 영향을 받습니다. MySQL 5.0.3 이상에서는 유효 최대 길이가 행 크기(65,535바이트)와 사용된 문자 세트에 의해 제한됩니다.
예를 들어 UTF-8 문자는 문자당 최대 3바이트가 필요할 수 있으므로 , UTF-8을 사용하는 VARCHAR 열은 최대 21,844자로 선언할 수 있습니다. 21,844에 3(문자당 바이트 수)을 곱하면 65,532가 되어 최대 행 크기 내에서 다른 열 데이터를 위한 3바이트의 버퍼가 남게 되기 때문입니다.
위 내용은 UTF-8(바이트 또는 문자)을 사용하는 MySQL에서 VARCHAR 길이는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!