Какой самый эффективный способ поиска по диапазонам дат в MySQL?
Я хотел бы спросить, какой самый эффективный (и самый быстрый) способ поиска данных между двумя датами?
Давайте рассмотрим следующий простой запрос:
SELECT Date_,counter1,counter2,...
WHERE (date range condition)
Столбец «Дата_» относится к типу DATETIME.
Я пробовал разные варианты, такие как:
WHERE Date_ >= '2012-12-01 00:00:00' AND Date_ <= '2012-12-05 00:00:00'
а также
WHERE Date_ BETWEEN '2012-12-01 00:00:00' AND '2012-12-05 00:00:00'
а также
WHERE Date_ = '2012-12-01 00:00:00' OR Date_ = '2012-12-02 00:00:00' OR
Date_ = '2012-12-03 00:00:00' OR Date_ = '2012-12-04 00:00:00' OR
Date_ = '2012-12-05 00:00:00'
На самом деле этот запрос Select намного сложнее (с объединениями и большим количеством условий). Это только упрощенная версия. Согласно EXPLAIN нет никакой разницы, как выполняется запрос. Я должен сказать, что столбец Date_ проиндексирован. К сожалению, я не могу проверить реальную скорость запросов, потому что я не могу избежать кэширования ОС, но по крайней мере кэш MySQL не использовался (SQL_NO_CACHE).
Есть ли, по вашему опыту, более быстрый способ поиска по интервалам дат (без функций)?
Какой из трех способов быстрее (если вообще есть разница)?
Заранее большое спасибо!