MySQL索引失效的问题解决

 更新时间:2024年05月10日 09:34:38   作者:五敷有你  
索引可以大大提高查询速度和效率,但如果索引失效了,查询的效率会变得非常低,本文主要介绍了MySQL索引失效的问题解决,感兴趣的可以了解一下

一、索引列上运算操作

不要在索引列上进行运算操作,否则索引会失效。

在tb_user的phone列加上索引,然后进行条件查询,在这个情况下,是可以走索引的。

但是在对索引列进行操作的时候,比如截取字符串,就会导致索引失效。如下:

二、字符串不加单引号

有的时候我们编写字符串不规范,会不加单引号,可以查询出来,但是它的执行计划不同。会导致全文扫描。

如下:

在加上单引号的情况

在不加上单引号的情况,如图,是进行的全文扫描。

三、模糊匹配

如果仅仅是尾部模糊匹配,索引不会失效,如果是头部模糊匹配,索引失效。

如下:如果仅仅是模糊匹配,是可以进行匹配到的。

如果头部模糊,如下:索引失效。

注意: 在大量数据下,一定要规避头部模糊查询,会导致索引失效。

四、or连接的条件

用or分隔开的条件,如果or一侧的列有索引,但是另一侧的列没有索引,那么设计的索引都不会被用到。

首先age是没有索引的,仅仅依靠age,复合索引是不生效的。

然后进行explain的执行计划的查看发现涉及到的索引并没有生效。

换个位置同理:

 创建age的索引,注意idx_user_age的索引命名规范,我就随便写了,运行后如下:索引执行

五、数据分布影响

如果MySQL评估使用索引比全表扫描更慢,则不使用索引,走全表扫描。

如上三图,经过测试我们发现,相同的SQL语句,只是传入的字段值不同,最终的执行计划也完全不一样,这是为 什么呢?

这是个在MYSQL查询的时候,会对语句进行评估,如果走全表扫描的时间比走索引慢,则放弃锁引,走全表扫描。

因为索引是用来索引少量数据的,如果通过索引查询返回大批量的数据,则还不 如走全表扫描来的快,此时索引就会失效。

到此这篇关于MySQL索引失效的问题解决的文章就介绍到这了,更多相关MySQL索引失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 在C#和MySQL中存取中文字符时避免乱码的方法

    在C#和MySQL中存取中文字符时避免乱码的方法

    这篇文章主要介绍了在C#和MySQL中存取中文字符时避免乱码的方法,主要还是老办法先转换成Unicode编码,需要的朋友可以参考下
    2015-05-05
  • MySQL变量原理及应用实例

    MySQL变量原理及应用实例

    这篇文章主要介绍了MySQL变量原理及应用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • MySQL两种删除用户语句的区别(delete user和drop user)

    MySQL两种删除用户语句的区别(delete user和drop user)

    这篇文章主要介绍了MySQL两种删除用户语句的区别(delete user和drop user),帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11
  • MYSQL 无法识别中文的永久解决方法

    MYSQL 无法识别中文的永久解决方法

    多数情况下,mysql在刚刚安装时是不支持中文的,这是由于编码的问题,那么如何解决这个方法,本文我们就来详细的了解一下
    2021-06-06
  • mysql优化利器之explain使用介绍

    mysql优化利器之explain使用介绍

    这篇文章主要介绍了mysql优化利器之explain使用介绍,需要的朋友可以参考下
    2017-01-01
  • MySQL的日志基础知识及基本操作学习教程

    MySQL的日志基础知识及基本操作学习教程

    这篇文章主要介绍了MySQL的日志基础知识学习教程,包括MySQL中日志相关常用的服务器变量说明,极力推荐!需要的朋友可以参考下
    2015-11-11
  • MySQL临时表的简单用法介绍

    MySQL临时表的简单用法介绍

    这篇文章给大家简单介绍了MySQL临时表的简单用法,对此有需要的朋友可以跟着学习操作下。
    2018-06-06
  • mysql优化之like和=性能详析

    mysql优化之like和=性能详析

    这篇文章主要给大家介绍了关于mysql优化之like和=性能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • MySQL之PXC集群搭建的方法步骤

    MySQL之PXC集群搭建的方法步骤

    PXC 是一套 MySQL 高可用集群解决方案,本文主要介绍了MySQL之PXC集群搭建的方法步骤,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • SQL SERVER 日期格式转换详解

    SQL SERVER 日期格式转换详解

    本篇文章是对SQL SERVER 日期格式转换进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论