Cette réponse est apparue en haut des résultats de recherche Google mais n'était pas correcte.
La confusion est probablement due à différentes versions de MySQL en test.
- La version 4 compte les octets
- La version 5 compte les caractères
Voici la citation de la documentation officielle de MySQL 5 documentation:
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, les longueurs de colonnes étaient interprétées en octets.) Cela s'applique aux types CHAR, VARCHAR et TEXT.
Intéressant (je n'y avais pas pensé), la longueur maximale d'une colonne VARCHAR est affectée par utf8 comme suit :
La longueur maximale effective d'un VARCHAR dans MySQL 5.0.3 et ultérieur est soumise à la taille de rangée maximale (65 535 octets, qui est partagée entre toutes les colonnes) et l'ensemble de caractères utilisé. Par exemple, les caractères utf8 peuvent nécessiter jusqu'à trois octets par caractère, donc une colonne VARCHAR qui utilise l'ensemble de caractères utf8 peut être déclarée pour un maximum de 21 844 caractères.
0 votes
@naXa : Je ne l'ai pas fait. Tu penses que je devrais ?
0 votes
Je ne sais pas.) C'est votre question, et c'est à vous de décider. Je voulais juste dire "une autre réponse semble plus complète".
0 votes
@robsch La réponse acceptée précédente était simple et correcte. Mais en raison de la demande populaire, j'ai accepté celle que vous souhaitez.