下面是一个令人费解的问题:EXPLAIN SELECT id,hostname FROM queue_servers WHERE live=1
EXPLAIN SELECT id FROM queue_servers WHERE live=1
效果很好..。但是,如果我尝试选择列"hostname“,或者将其添加到select列列表中,它将不会使用活动索引,除非我正在搜索live=0。为什么会这样呢?
select a, b, c from mytable where a=4 and c >= "2011-01-01 00:00:00" and c < "2011-01-02 00:00:00"
得到解释后的查询表明它确实会使用索引,但我不知道它是否只使用索引的第一个字段,然后扫描表的其余部分,或者它是否足够聪明,为b的每个值应用第三个字段索引,这与执行20个不同的查询相同,每个不