Colocando um índice em um campo de data no MySQL
-
27-09-2019 - |
Pergunta
Haverá algum benefício real para mim ao colocar índices em campos de data que serão usados principalmente em consultas usando coisas como.
dateField < 'var'
E
'var' BETWEEN dateField1 AND dateField2
As pesquisas são feitas muitas vezes, mas nunca faço uma comparação direta "=" delas.
Solução
Sim claro.As pesquisas por intervalo se beneficiarão de um índice, tanto quanto as pesquisas por igualdade.
Citando do Manual de referência do MySQL ::Como o MySQL usa índices:
Características do índice B-Tree
Um índice de árvore B pode ser usado para comparações de colunas em 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 string constante que não começa com um caractere curinga.
Em algumas situações, o otimizador pode decidir não usar o índice se o intervalo acabar sendo muito grande, pois a varredura da tabela pode ser realmente mais rápida.Usar EXPLAIN
para ver quais índices (se houver) serão usados em sua consulta.