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.