企业网站开发模板,电子商务app,网站建设沛宣,三只松鼠广告策划书表数据#xff1a; 索引情况#xff1a; 其中a是主键#xff0c;对应主键索引#xff0c;bcd三个字段组成联合索引#xff0c;e字段为一个索引
情况一#xff1a;不符合最左匹配原则 去掉b1的条件后就不符合最左匹配原则了#xff0c;导致索引失效
情况二#xff…表数据 索引情况 其中a是主键对应主键索引bcd三个字段组成联合索引e字段为一个索引
情况一不符合最左匹配原则 去掉b1的条件后就不符合最左匹配原则了导致索引失效
情况二不正确的like查询
正常使用like 不正确使用like 当使用like模糊查询时如果不以%或者_开头进行查询的话索引还是有效的。
对索引进行了计算或者使用了函数 对索引进行了类型转换
e字段的类型是varchar类型下面这个sql需要把e字段中的字符转换为数字会导致索引失效
使用不等于导致索引失效 使用b1时索引有效使用b1时索引失效
order by导致索引失效
就算利用索引但是由于select * 所以需要回表查询MySQL回表是一个数据库查询优化的概念主要是针对数据表中所使用的索引并不能覆盖查询语句中所需要的所有字段而引发的问题。这时MySQL就需要回到数据表中重新查找需要的数据这也就是回表的含义。而且回表成本比较高所以不会走索引。 如果是select b就不需要回表了此时就会选择走索引
使用or会导致索引失效 select * 导致查询失效 范围查询数据量过多导致索引失效
新增一些数据