主に次のようなものを使用したクエリで使用される日付フィールドにインデックスを設定することで、本当にメリットがありますか?
dateField < "var"
そして
"var" BETWEEN dateField1 AND dateField2
検索は多く行われますが、それらに対して直接比較することはありません。
回答:
回答№1は16はい、もちろん。範囲検索は、等値検索と同様にインデックスの恩恵を受けます。
から引用する MySQLリファレンスマニュアル:: MySQLがインデックスを使用する方法:
Bツリーインデックスの特性
Bツリーインデックスは、列の比較に使用できます。=、>、> =、<、<=、またはBETWEEN演算子を使用する式で。 LIKEへの引数がワイルドカード文字で始まらない定数文字列である場合、インデックスはLIKE比較にも使用できます。
状況によっては、テーブルスキャンが実際に高速になる可能性があるため、範囲が大きくなりすぎると、オプティマイザーがインデックスを使用しないことを決定する場合があります。使用する EXPLAIN
クエリで使用されるインデックス(存在する場合)を確認します。