Вопрос

Есть ли какая-либо реальная выгода для меня вкладывать индексы на полей даты, которые будут в основном использоваться в запросах, использующих такие вещи.

dateField < 'var'

А также

'var' BETWEEN dateField1 AND dateField2

Поиски много делают много, но я никогда не делаю прямого сравнения "=" на них.

Это было полезно?

Решение

Ну конечно; естественно. Поиски диапазона выиграют от индекса, так же, как и поиск по равенству.

Цитируя из MySQL Reference Manual :: Как MySQL использует индексы:

Индексные характеристики B-деревьев

Индекс B-дерева может использоваться для сопоставления колонны в выражениях, которые используют =,>,> =, <, <= или между операторами. Индекс также может использоваться для сравнения, если аргумент понравился, является постоянной строкой, которая не запускается с символа подстановки.

В некоторых ситуациях оптимизатор может решить не использовать индекс, если диапазон окажется слишком большим, поскольку сканирование таблицы может быть фактически быстрее. Использовать EXPLAIN Чтобы увидеть, какие (если какие-либо) индексы будут использоваться в вашем запросе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top