mysql索引失效
一、索引失效
当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效
使用order by对数据库进行查询时,导致索引失效 ,order by走全表扫描比回表的时间更少
主键和唯一索引在同一列时,会导致索引失效
在where条件列使用函数或者是表达式,导致不能命中索引,引发失效
%开头的模糊查询,导致不能命中索引,引发失效
在索引列上使用 IS NULL 或 IS NOT NULL操作。
在索引字段上使用not,<>,!=
不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。 优化方法: key<>0 改为 key>0 or key<0。
组合索引,不是使用第一列索引,索引失效。必须满足最左前缀原则,一次从最左开始匹配。
9、一些sql语句会破坏索引:某些查询的时候没有办法使用索引 比如下面的例子 ,因为没有办法使用数据结构 ,索引一般是hash或者btree结构,比如我们一般用某种数据结构二分法查询一个值,可以查到。但是我们查询一个结果,用二分法要求查询不属于某些值的,就没有办法使用数据结构,就使用不了索引。所以核心就是判断一个sql语句能不能通过数据结构来查询出结果,能查询出来就是能够使用索引,不能查询出来就是不能使用索引
来源地址:https://blog.csdn.net/weixin_47796247/article/details/128278786
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341