MySQL クエリの最適化に苦労しています。
select *
from course as t1
left join semester as t3 on t1.semester=t3.id
where t1.visibleFrom <= '1364621522'
and '1364621522' <= t1.visibleTo
order by t3.begin desc, t1.name;
EXPLAIN
これは、コース テーブルで ALL クエリを使用すると報告されます。テーブルにはいくつかの異なるインデックス (visibleFrom、visibleTo、両方の組み合わせ、名前、学期) があります。name
は varchar 列であり、begin
nullになることもある整数です。visibleFrom
visibleTo
結合を省略しt3
てインデックス名の使用を強制すると、何とか機能します。
このクエリがインデックスを使用しない理由はありますか?