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