6.4.2 对于使用like的查询,'%aaa’:使用索引无效,‘aaa%’:使用索引有效,‘%aaa%’:使用索引无效。
explain select * from dept where dname like '%aaa' //索引无效
explain select * from dept where dname like 'aaa%' //索引有效
explain select * from dept where dname like '%aaa%' //索引无效
6.4.3 在有or的Sql语句中,只要有一个条件不能使用索引,则这条语句的索引无效;换言之,就是要求使用的所有字段,都必须单独使用时能使用索引。
explain select * from dept where dname = 'aaa'; //索引有效
explain select * from dept where loc = 'aaa'; //索引无效
select * from dept where dname=’xxx’ or loc=’xx’; //因此索引无效
4.4.4 如果列类型是字符串,那一定要在条件中将数据使用引号引用起来。否则使用索引无效。
expain select * from dept where dname=‘111’; //索引有效
expain select * from dept where dname=qqq; //会报错
4.4.5 如果mysql估计使用全表扫描要比使用索引快,则不使用索引。
如:表里面只有一条记录