当前位置: 首页 > 编程笔记 >

mysql索引失效的五种情况分析

张鹏云
2023-03-14
本文向大家介绍mysql索引失效的五种情况分析,包括了mysql索引失效的五种情况分析的使用技巧和注意事项,需要的朋友参考一下

索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:

如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)

  

  注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引

  2.对于多列索引,不是使用的第一部分,则不会使用索引

  3.like查询是以%开头

  4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引

  

  5.如果mysql估计使用全表扫描要比使用索引快,则不使用索引

此外,查看索引的使用情况

show status like ‘Handler_read%';
大家可以注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数 handler_read_rnd_next:这个值越高,说明查询低效

 类似资料:
  • 本文向大家介绍Mysql索引会失效的几种情况分析,包括了Mysql索引会失效的几种情况分析的使用技巧和注意事项,需要的朋友参考一下 索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:     1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)   注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引   2.对于多列索引,不是使用的第

  • 本文向大家介绍MySQL索引失效的几种情况汇总,包括了MySQL索引失效的几种情况汇总的使用技巧和注意事项,需要的朋友参考一下 一.索引不存储null值 更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用is null条件时,因为索引上根本 没Null值,不能利用到索引,只能全表扫描。 为什么索引列不能存Null值? 将索引列值进行建树,其中

  • 主要内容:一、准备工作,二、索引失效规则,1.优先使用联合索引,2.最左匹配原则,3.范围条件右边的列索引失效,4.计算、函数导致索引失效,5.类型转换导致索引失效,6.不等于(!= 或者<>)索引失效,7.is null可以使用索引,is not null无法使用索引,8.like以%开头,索引失效,9.OR前后存在非索引的列,索引失效,10.字符集不统一,三、建议一、准备工作 首先准备两张表用于演示: 二、索引失效规则 1.优先使用联合索引 如下一条sql语句是没有索引的情况: 我们通过建立

  • 主要内容:1 索引扫描排序,2 索引下推,3 压缩(前缀压缩)索引,4 重复、冗余索引和未使用的索引,5 常见索引失效情况,6 三星索引详细介绍了各种高性能的索引使用策略,比如索引排序、索引下推、压缩索引等等,以及常见索引失效的情况。 前面我们已经介绍了各种类型的索引结构及其对应的优缺点: BTREE索引的数据结构以及具体实现原理深入解析 哈希索引的数据结构以及索引的优缺点 正确的创建和使用索引是实现高性能查询的基础。我们通常会看到一些查询不当的使用索引,或者使用MySQL无法使用已有的索引,下

  • 本文向大家介绍Mysql中SQL语句不使用索引的情况,包括了Mysql中SQL语句不使用索引的情况的使用技巧和注意事项,需要的朋友参考一下 MySQL查询不使用索引汇总 众所周知,增加索引是提高查询速度的有效途径,但是很多时候,即使增加了索引,查询仍然不使用索引,这种情况严重影响性能,这里就简单总结几条MySQL不使用索引的情况 如果MySQL估计使用索引比全表扫描更慢,则不使用索引。例如,如果列

  • 本文向大家介绍mysql的in会不会让索引失效?,包括了mysql的in会不会让索引失效?的使用技巧和注意事项,需要的朋友参考一下 mysql的in会让索引失效吗?不会! 看结果: 顺便说下,in查出的结果,不一定按in排序, 如下: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对呐喊教程的支持。如果你想了解更多相关内容请查看下面相关链接