Je ne suis pas familier avec la création d'index. Je suis actuellement en train de l'expérimenter pour découvrir comment cela fonctionne et dans quels cas une base de données utilisera l'index.MySQL ignore mon index
J'ai une table simple avec 3 colonnes; un identifiant, un nom et un statut. J'ai mis un index sur le nom qui est une colonne CHAR (30). Contre mes attentes, MySQL ne tient pas compte de cet indice dans la requête suivante:
SELECT * FROM people WHERE name = 'Peter'
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE people ref name name 90 const 1 Using where
Cependant, lorsque vous utilisez la requête suivante, l'index est utilisé:
SELECT COUNT(*) FROM people WHERE name = 'Peter'
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE people ref name name 90 const 1 Using where; Using index
Quelqu'un pourrait-il s'il vous plaît expliquer cela pour moi?
Merci beaucoup d'avoir rendu cela clair. La raison pour laquelle je pensais que ce n'était pas utilisé était que je m'attendais à ce qu'il dise explicitement "USING INDEX" dans la colonne supplémentaire. Évidemment c'était assez stupide et j'aurais dû regarder moi-même les significations des colonnes de la table d'explication. Merci encore et mes excuses! –
Pas de problème :-) Amusez-vous! –
"const" signifie que vous recherchez une clé primaire ou un index unique en utilisant une constante, et qu'il y a au plus une ligne correspondante. Cela signifie que l'enregistrement peut être récupéré rapidement et ensuite conservé en mémoire où tous les autres enregistrements référençant des colonnes de celui-ci peuvent obtenir leurs données très rapidement. – Jay