我正在努力优化 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
和visibleFrom
是visibleTo
也可以为空的整数。
如果我忽略加入t3
并强制使用索引名称,它会以某种方式工作。
任何想法为什么这个查询不使用索引?