2 つの日付間のデータを検索する最も効率的な (そして最速の) 方法は何ですか?
次の簡単なクエリがあるとします。
SELECT Date_,counter1,counter2,...
WHERE (date range condition)
「Date_」列は 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_ 列にはインデックスが付けられていると言う必要があります。残念ながら、OS キャッシュを回避できないため、実際のクエリ速度をテストすることはできませんが、少なくとも MySQL キャッシュは使用されませんでした (SQL_NO_CACHE)。
あなたの経験によると、(関数なしで) 日付間隔で検索するより高速な方法はありますか?
3 つの方法のうち、どちらが高速ですか (違いがある場合)?
よろしくお願いします!