Mysql索引会失效的几种情况分析

 更新时间:2014年06月04日 14:47:14   作者:  
在做项目的过程中,难免会遇到明明给mysql建立了索引,可是查询还是很缓慢的情况出现,下面我们来具体分析下这种情况出现的原因及解决方法

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

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

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

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

  3.like查询是以%开头

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



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

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

相关文章

  • mysql锁表和解锁语句分享

    mysql锁表和解锁语句分享

    对于MySQL来说,有三种锁的级别:页级、表级、行级
    2011-09-09
  • 在MySQL中删除表的操作教程

    在MySQL中删除表的操作教程

    这篇文章主要介绍了在MySQL中删除表的操作教程,是MySQ入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    这篇文章主要介绍了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法,总结分析了MySQL建表、编码设置、字段添加、索引操作所涉及的SQL语句,需要的朋友可以参考下
    2017-05-05
  • MYSQL的存储过程和函数简单写法

    MYSQL的存储过程和函数简单写法

    简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法,这里就为大家简单介绍一下,需要的朋友可以参考下
    2018-05-05
  • Win7、WinXP下MySql安装出错完全卸载的方法步骤

    Win7、WinXP下MySql安装出错完全卸载的方法步骤

    这篇文章主要介绍了Win7、WinXP下MySql安装出错完全卸载的方法步骤,本文给出详细的操作步骤,按本文方法清理后,重新安装,应该就不会有错误了,需要的朋友可以参考下
    2015-06-06
  • Mysql系列SQL查询语句书写顺序及执行顺序详解

    Mysql系列SQL查询语句书写顺序及执行顺序详解

    这篇文章主要为大家介绍了Mysql系列SQL查询语句的书写顺序及执行顺序示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • 基于SQL中SET与SELECT赋值的区别详解

    基于SQL中SET与SELECT赋值的区别详解

    本篇文章是对SQL中SET与SELECT赋值的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MYSQL 的10大经典优化案例场景实战

    MYSQL 的10大经典优化案例场景实战

    在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。本文我们就聊聊MYSQL的优化
    2021-09-09
  • mysql缓冲和缓存设置详解

    mysql缓冲和缓存设置详解

    本文主要给大家讲解的是mysql优化过程中比较重要的2个参数缓冲和缓存的设置,希望大家能够喜欢
    2016-12-12
  • MySQL基于java实现备份表操作

    MySQL基于java实现备份表操作

    这篇文章主要介绍了MySQL基于java实现备份表操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10

最新评论