/ / Mettre un index sur un champ de date dans MySQL - mysql, indexing, database-indexes

Mettre un index sur un champ de date dans MySQL - mysql, indexation, index de base de données

Y aura-t-il un avantage réel à ce que je mette des index sur les champs de date qui seront principalement utilisés dans les requêtes utilisant des éléments tels que.

dateField < "var"

Et

"var" BETWEEN dateField1 AND dateField2

Les recherches se font beaucoup mais je ne fais jamais de comparaison directe "=" sur elles.

Réponses:

16 pour la réponse № 1

Oui bien sûr. Les recherches par plage bénéficieront d'un index, tout autant que les recherches par égalité.

Citant du Manuel de référence MySQL :: Comment MySQL utilise les index:

Caractéristiques de l'indice B-Tree

Un index B-tree peut être utilisé pour les comparaisons de colonnesdans les expressions qui utilisent les opérateurs =,>,> =, <, <= ou BETWEEN. L'index peut également être utilisé pour les comparaisons LIKE si l'argument de LIKE est une chaîne constante qui ne commence pas par un caractère générique.

Dans certaines situations, l'optimiseur peut décider de ne pas utiliser l'index si la plage finit par être trop grande, car un balayage de table peut en réalité être plus rapide. Utilisation EXPLAIN pour voir quels index (le cas échéant) seront utilisés dans votre requête.