Jaki jest najbardziej skuteczny sposób wyszukiwania w zakresach dat w MySQL?

Chciałbym zapytać, jaki jest najbardziej skuteczny (i najszybszy) sposób wyszukiwania danych między 2 datami?

Rozważmy następujące proste zapytanie:

SELECT Date_,counter1,counter2,...
WHERE (date range condition)

Kolumna „Date_” to typ DATETIME.

Próbowałem różnych opcji, takich jak:

WHERE Date_ >= '2012-12-01 00:00:00' AND Date_ <= '2012-12-05 00:00:00'

i

WHERE Date_ BETWEEN '2012-12-01 00:00:00' AND '2012-12-05 00:00:00'

i

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'

W rzeczywistości to zapytanie Select jest znacznie bardziej skomplikowane (z połączeniami i większą liczbą warunków). To jest tylko wersja uproszczona. Zgodnie z EXPLAIN nie ma różnicy, jak wykonywane jest zapytanie. Muszę powiedzieć, że kolumna Date_ jest indeksowana. Niestety, nie mogę przetestować rzeczywistej szybkości zapytania, ponieważ nie mogę uniknąć buforowania systemu operacyjnego, ale przynajmniej nie użyto pamięci podręcznej MySQL (SQL_NO_CACHE).

Czy według twojego doświadczenia istnieje szybszy sposób wyszukiwania w odstępach czasu (bez funkcji)?

Która z trzech metod jest szybsza (w przypadku, gdy w ogóle istnieje różnica)?

Z góry dziękuję!

questionAnswers(1)

yourAnswerToTheQuestion