Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql::Error :La clé spécifiée était trop longue ; la longueur maximale de la clé est de 1000 octets

Il s'agit uniquement d'un problème MySQL -

MySQL a différents moteurs - MyISAM, InnoDB, Memory...

MySQL a différentes limites sur la quantité d'espace que vous pouvez utiliser pour définir les index sur les colonnes - pour MyISAM, c'est 1 000 octets ; c'est 767 pour InnoDB . Et le type de données de ces colonnes est important - pour VARCHAR , c'est 3x donc un index sur un VARCHAR(100) prendra 300 de ces octets (parce que 100 caractères * 3 =300).

Pour permettre une certaine indexation lorsque vous atteignez la valeur plafond, vous pouvez définir l'index en ce qui concerne les parties du type de données de la colonne :

CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))

En supposant que your_column est VARCHAR(100) , l'index dans l'exemple ci-dessus ne portera que sur les 50 premiers caractères. La recherche de données au-delà du 50e caractère ne pourra pas utiliser l'index.