Maison > Article > base de données > Combien de caractères un champ VARCHAR(32) peut-il contenir dans une table MySQL UTF-8 ?
Longueurs MySQL VARCHAR et UTF-8 : clarifier la confusion
Lors de la création d'un champ VARCHAR(32) dans une table UTF-8 dans MySQL, la question se pose : cela représente-t-il une capacité de stockage de 32 octets ou 32 caractères ? La compréhension de cette distinction peut varier selon la version de MySQL.
Comprendre les longueurs VARCHAR
Dans MySQL 5.0.3 et versions ultérieures, les longueurs VARCHAR sont interprétées en unités de caractères , pas des octets. Cela signifie qu'un champ VARCHAR(32) peut contenir jusqu'à 32 caractères, quel que soit l'espace de stockage requis par chaque caractère.
Dans les versions antérieures de MySQL (4.1 et inférieures), les longueurs VARCHAR étaient interprétées en octets. Par conséquent, un champ VARCHAR(32) en UTF-8 permettrait jusqu'à 32 octets de données, qui pourraient potentiellement être stockées sous moins de 32 caractères, en fonction du codage des caractères.
UTF- 8 Codage de caractères
UTF-8 est un codage de caractères qui peut représenter un large éventail de caractères internationaux, y compris des caractères multi-octets. Cela signifie qu'un seul caractère codé en UTF-8 peut occuper plusieurs octets d'espace de stockage.
Longueur maximale de VARCHAR avec UTF-8
En raison de la possibilité de plusieurs Caractères UTF-8 de 8 octets, la longueur maximale effective d'une colonne VARCHAR dans MySQL 5.0.3 et versions ultérieures est soumise à la taille maximale de la ligne (65 535 octets) et au jeu de caractères utilisé. Pour le jeu de caractères UTF-8, un VARCHAR peut avoir une longueur maximale d'environ 21 844 caractères, car chaque caractère peut nécessiter jusqu'à trois octets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!