インデックスが付けられたdatetime
列のテーブルがあります。私は特定の日付のすべての行を選択したいと思います。以前私はこれを使用してきた:datetime = dateの行を選択してインデックスを使用します。
SELECT *
FROM `table`
WHERE DATE(date_column) = '2016-04-12';
これは正常に動作します、しかし、私が原因私はDATE()
機能を適用すると、MySQLはインデックスを利用していないという事実のためにパフォーマンスの問題に気付いてきました。私も試しました:
SELECT *
FROM `table`
WHERE SUBSTR(date_column,1,10) = '2016-04-12';
を利用できません。これまでのところ、動作しているようです唯一のことは、次のとおりです。
SELECT *
FROM `table`
WHERE date_column >= '2016-04-12'
AND date_column < '2016-04-13'
この最後のクエリが正常にインデックスを使用していますが、私はただ一つの条件でこれを行う方法があるかどうかを知りたいのです。
最初のクエリで 'date_column = '2016-04-12 00:00:00.000''を使用しないのはなぜですか?または、それは2016年4月12日の最後の2分の1秒の間です。 – Edu