Maison > base de données > tutoriel mysql > Comment MySQL interprète-t-il les longueurs VARCHAR dans les tables UTF-8 ?

Comment MySQL interprète-t-il les longueurs VARCHAR dans les tables UTF-8 ?

DDD
Libérer: 2024-11-21 07:25:11
original
388 Les gens l'ont consulté

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

Décodage des longueurs VARCHAR et UTF-8 dans MySQL

Lors de la création de champs VARCHAR dans MySQL, une idée fausse courante surgit concernant la capacité de stockage des données . L'utilisateur peut supposer qu'un champ VARCHAR(32) dans une table UTF-8 peut contenir 32 octets ou 32 caractères, selon la valeur la plus grande. Cependant, l'interprétation réelle dépend de la version de MySQL utilisée.

Version 4 par rapport à la version 5

Dans les versions de MySQL antérieures à 4.1, les longueurs VARCHAR étaient mesurées en octets. En conséquence, un champ VARCHAR(32) peut stocker jusqu'à 32 octets de données. Cependant, dans MySQL version 5 et ultérieure, les longueurs VARCHAR sont interprétées en unités de caractères. Par conséquent, un champ VARCHAR(32) dans une table UTF-8 peut contenir jusqu'à 32 caractères.

Documentation officielle de MySQL

Pour clarifier ce problème, la documentation officielle de MySQL La documentation 5 indique explicitement :

"MySQL interprète les spécifications de longueur dans les définitions de colonnes de caractères en unités de caractères. (Avant MySQL 4.1, colonne les longueurs ont été interprétées en octets.) Cela s'applique aux types CHAR, VARCHAR et TEXT. influencer la longueur maximale d'une colonne VARCHAR. Par exemple, les caractères UTF-8 peuvent nécessiter jusqu'à trois octets par caractère. Par conséquent, une colonne VARCHAR utilisant UTF-8 peut être déclarée avec un maximum de 21 844 caractères. Ceci est limité par la taille maximale des lignes de 65 535 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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal