Question

Est-ce qu'il y aura un réel avantage pour me mettre des index aux terrains de date qui vont être principalement utilisés dans les requêtes en utilisant des trucs comme.

dateField < 'var'

'var' BETWEEN dateField1 AND dateField2

Les recherches se fait beaucoup mais je fais jamais une comparaison directe « = » sur eux.

Était-ce utile?

La solution

Oui, bien sûr. recherches Range bénéficieront d'un indice, tout autant que les recherches sur l'égalité.

Je cite MySQL Reference Manual :: Comment MySQL utilise les index :

  

B-Tree Caractéristiques Index

     

Un index B-tree peut être utilisé pour les comparaisons de colonnes dans des expressions qui utilisent le =,>,> =, <, <=, ou entre les opérateurs. L'indice 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'optimisateur peut décider de ne pas utiliser l'indice si la plage finira par être trop grand, comme une analyse de table peut effectivement être plus rapide. Utilisez EXPLAIN pour voir quel (le cas échéant) des indices seront utilisés sur votre requête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top