Erreur MySQL n° 1071 : Comprendre les limitations de longueur de clé
Lors de la tentative d'ajout d'un index unique à une table avec des colonnes spécifiques (colonne1 et colonne2 ), les utilisateurs peuvent rencontrer l'erreur suivante :
#1071 - Specified key was too long; max key length is 767 bytes
Bien qu'il semble initialement que la longueur combinée de la colonne 1 (20) et column2 (500) se situe dans la longueur de clé maximale de 767 octets, l'explication réelle réside dans la compréhension de la limitation d'indexation des préfixes de MySQL.
Dans les versions MySQL antérieures à 5.7, les tables InnoDB avaient une limitation d'indexation des préfixes de 767 octets, tandis que les tables MyISAM avaient une limite plus grande de 1 000 octets. Cela signifie que le nombre maximum d'octets utilisés par un index est basé sur la partie de départ de la ou des colonnes incluses dans l'index.
Dans l'exemple donné, colonne1 et colonne2 sont des colonnes VARCHAR(x). , qui stockent des chaînes de longueur variable. L'erreur se produit car MySQL considère toute la longueur de la colonne comme faisant partie de l'index, et pas seulement les données réelles stockées. Par conséquent, même si les données réelles de la colonne 1 et de la colonne 2 sont plus courtes que la longueur totale allouée, la taille de l'index dépasse la limite maximale.
Pour éviter cette erreur, les utilisateurs disposent de plusieurs options :
Comprendre l'impact de la longueur des colonnes sur la taille des index est crucial pour éviter les erreurs de longueur de clé MySQL. En gérant soigneusement la taille des colonnes et les définitions d'index, les utilisateurs peuvent implémenter avec succès des index et maintenir l'intégrité des données sans dépasser les limites de la base de données.
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!