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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top