Comprendre la longueur de l'index varchar MySQL pour les colonnes UTF-8
Dans MySQL, la longueur de l'index d'une colonne varchar(n) est spécifiée dans caractères, pas octets. Cependant, MySQL suppose que chaque caractère UTF-8 occupe 3 octets. Cela signifie que pour une colonne varchar avec une longueur d'index spécifiée de n, le nombre maximum réel d'octets pouvant être indexés est de 3n.
Pour le décomposer :
Impact sur la taille de l'index pour les colonnes UTF-8
Basé sur l'hypothèse de 3 octets par caractère, MySQL impose une limite pratique à la taille de l'index pour les colonnes varchar avec le jeu de caractères UTF-8.
Considération des formats de lignes dynamiques et compressés
Dans les versions MySQL 8.0 et supérieures, vous pouvez potentiellement augmenter la taille d'index maximale pour les colonnes varchar dans les tables InnoDB en utilisant le DYNAMIC ou formats de lignes COMPRESSÉES. Ces formats de lignes permettent des longueurs de préfixes plus longues, augmentant ainsi la limite de taille d'index. Cependant, cette optimisation n'est pas prise en charge pour les versions antérieures de MySQL, y compris 5.5.27.
Recommandation pour la conception d'index
Lors de la conception d'index pour les colonnes varchar avec l'UTF-8 jeu de caractères, il est recommandé de :
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!