Haverá qualquer benefício real para mim colocando índices em campos de data que serão usados principalmente em consultas usando coisas como.
dateField < "var"
E
"var" BETWEEN dateField1 AND dateField2
As buscas são feitas muito, mas eu nunca faço uma comparação direta "=" nelas.
Respostas:
16 para resposta № 1Sim, claro. Pesquisas de intervalo irão se beneficiar de um índice, tanto quanto pesquisas de igualdade.
Citando o Manual de Referência do MySQL :: Como o MySQL Utiliza Índices:
Características do índice B-Tree
Um índice B-tree pode ser usado para comparações de colunasem expressões que usam os operadores =,>,> =, <, <= ou BETWEEN. O índice também pode ser usado para comparações LIKE se o argumento para LIKE for uma cadeia constante que não inicia com um caractere curinga.
Em algumas situações, o otimizador pode decidir não usar o índice se o intervalo for muito grande, já que a verificação da tabela pode ser mais rápida. Usar EXPLAIN
para ver quais índices (se houver) serão usados em sua consulta.