Maison > base de données > tutoriel mysql > le corps du texte

Comment fonctionnent les longueurs VARCHAR dans MySQL avec UTF-8 : octets ou caractères ?

Barbara Streisand
Libérer: 2024-11-22 02:21:13
original
531 Les gens l'ont consulté

How do VARCHAR lengths work in MySQL with UTF-8: Bytes or Characters?

Longueurs MySQL VARCHAR et UTF-8 : octets par rapport aux caractères

Lors de la création d'un champ VARCHAR dans une table MySQL, il est crucial de comprendre comment la longueur spécifiée est interprétée. Dans les versions MySQL antérieures à 4.1, les longueurs VARCHAR étaient définies en octets. Cependant, à partir de MySQL 4.1, les longueurs sont comptées en caractères.

Le champ VARCHAR(32) dans une table UTF-8 représente 32 caractères et non 32 octets. En effet, UTF-8 est un codage de longueur variable, dans lequel chaque caractère peut occuper plusieurs octets (jusqu'à 4 octets).

La documentation officielle de MySQL pour la version 5 indique :

"MySQL interprète les spécifications de longueur dans les définitions de colonnes de caractères en unités de caractères. Cela s'applique aux types CHAR, VARCHAR et TEXT."

Cependant, la longueur maximale d'une colonne VARCHAR. est également influencé par UTF-8. Dans MySQL 5.0.3 et versions ultérieures, la longueur maximale effective est limitée par la taille de la ligne (65 535 octets) et le jeu de caractères utilisé.

Par exemple, puisque les caractères UTF-8 peuvent nécessiter jusqu'à 3 octets par caractère. , une colonne VARCHAR utilisant UTF-8 peut être déclarée avec un maximum de 21 844 caractères. En effet, 21 844 multiplié par 3 (octets par caractère) donne 65 532, ce qui laisse un tampon de 3 octets pour les autres données de colonne dans la taille maximale de ligne.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal