问题一:建立联合索引(a,b),执行如下sql:exlpain select a from xxx,发现执行计划possible_key为空,kye列命中索引,这没有条件的查询怎么也能命中索引呢?
问题二、关于ICP,建立联合索引(a,b),执行如下sql:explain select * from xxx where a>100(大于100的记录就一条,全表一共10条记录,肯定会走索引),打开执行计划发现Extra列出现using index condition,不太理解,如果是两个索引查询条件使用了索引下推我能理解,但就一个索引查询条件怎么也触发了索引下推,我这一个查询条件已经命中了所有符合条件的列了,如果按where提取条件机制,这条sql的index key为a>100,index filter为空,table filter为空,只有index filter不为空才会将index filter推送至引擎层触发索引下推,实在想不懂,请老鸟答疑解惑,谢谢!
第一个select * 就不会走索引,第二个联合索引有最左原则,可以了解下
通过这篇文章https://www.cnblogs.com/mengxinJ/p/14045520.html,已解决