/ / Colocando um índice em um campo de data no MySQL - mysql, indexing, database-indexes

Colocando um índice em um campo de data no MySQL - mysql, indexing, database-indexes

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 № 1

Sim, 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.