2010-10-01 54 views
5

¿Va a haber algún beneficio real para mí al poner índices en campos de fecha que se usarán principalmente en consultas usando cosas como.Poner un índice en un campo de fecha en MySQL

dateField < 'var' 

Y

'var' BETWEEN dateField1 AND dateField2 

Las búsquedas se hacen mucho, pero nunca estoy haciendo una comparación directa "=" en ellos.

Respuesta

16

Sí, por supuesto. Las búsquedas de rango se beneficiarán de un índice, al igual que las búsquedas de igualdad.

Citando del MySQL Reference Manual :: How MySQL Uses Indexes: Índice

árbol B Características

Un índice de árbol B se puede utilizar para las comparaciones de las columnas en las expresiones que utilizan los operadores =,>,> =, < , < =, o BETWEEN operadores. El índice también se puede usar para las comparaciones LIKE si el argumento para LIKE es una cadena constante que no comienza con un carácter comodín.

En algunas situaciones, el optimizador puede decidir no usar el índice si el rango terminará siendo demasiado grande, ya que una exploración de tabla podría ser más rápida. Use EXPLAIN para ver qué índices (si los hay) se usarán en su consulta.

Cuestiones relacionadas