MySQL索引失效的几种场景

MySQL索引失效的几种场景

 我们都知道建立索引能够提高查询效率,那么是不是任何情况下都能提高呢,当然不是的的,下面我们就来列举一些常见的索引失效的场景。

借用上一篇文章的dm_person_info表

在card_code列没加索引的时,查询时间如下,大概都在0.07秒。

MySQL索引失效的几种场景
 我们来加上索引试试,加上后查询效率高了许多。

MySQL索引失效的几种场景

 在正确使用索引的情况下,查询一行数据的时间不到10毫秒,所以显示0.00 sec .

1.列类型是字符串,查询条件未加引号。

card_code列是身份证号,数据类型是varchar,在没有将证件号码用引号括起时不会使用索引,此时索引失效。

MySQL索引失效的几种场景
 2.未使用该列作为查询条件

索引建在card_code列上,使用tel列作为查询条件,此时该索引未被使用到,也可以说是失效的。

MySQL索引失效的几种场景
3.使用like时通配符在前

我们可以看到通配符在后面时效率不受影响,说明此时索引未失效,通配符在前时索引失效。
MySQL索引失效的几种场景
4. 在查询条件中使用OR

查询条件中使用or会使索引失效,要想是索引生效,需要将or中的每个列都加上索引。
MySQL索引失效的几种场景
5.对索引列进行函数运算
MySQL索引失效的几种场景
 6.联合索引ABC问题

Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是index (a,b,c),可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c或c进行查找 。

这里只介绍6种比较常见的失效场景,实际上还有很多,我们在实际开发中要注意到这些问题,不能掉到坑里去了,哈哈^_^  。

原文:https://blog.csdn.net/dwl0208/article/details/83448520

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112295.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 如何使用SQL Server配置管理器

    如何使用SQL Server配置管理器SQLServerconfigurationmanagerisatoolprovidedbyMicrosoftSQLServer.WhenweinstallSQLServer,itisinstalledautomatically.Itisusedforthefollowingpurposes.SQLServer配置管理器是Mic…

  • 手机号码归属地 mysql_最新手机号段归属地数据库 (2021年1月版) 471402行

    手机号码归属地 mysql_最新手机号段归属地数据库 (2021年1月版) 471402行//名称:手机号码归属地查询dat高效率查询内存优化版//压缩:原版txt为22M,生成这种dat结构为2.66M//性能:每秒解析300万+号段或者号码,简洁高效//环境:CPUi7-7700K+内存16GB//创建:qqzeng-ipusingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Text;…

  • 锁屏时钟APP_linux时钟同步服务器设置

    锁屏时钟APP_linux时钟同步服务器设置桌面锁屏时钟里的桌面美化功能非常多,并且也都很实用,不仅可以帮助用户把手机桌面设置的更加简洁,查找东西变得更方便,而且用户还能够使用自定义设置的方式来将自己手机桌面的内容,进行不同的展示,桌面锁屏时钟app就算在锁屏的状态下也能够显示当前的时间,非常便捷。桌面锁屏时钟优势1.一款极简实用时钟,适合每一个喜欢简约的你。2.主界面是自带时间、日期、天气温度的LED电子数字时钟。3.经典的动态翻页效果,…

  • HDOJ 5000 Clone

    HDOJ 5000 Clone

  • python编程100例_python进阶路线

    python编程100例_python进阶路线异常模块下面介绍python常用的异常模块AttributeError异常AttributeError试图访问一个类中不存在的成员(包括:成员变量、属性和成员方法)而引发的异常Attribut

  • 什么叫侧面指纹识别_侧面指纹VS屏下指纹和后置指纹,原来我们都低估了侧面指纹…「建议收藏」

    什么叫侧面指纹识别_侧面指纹VS屏下指纹和后置指纹,原来我们都低估了侧面指纹…「建议收藏」原标题:侧面指纹VS屏下指纹和后置指纹,原来我们都低估了侧面指纹随着科技的发展,手机花式解锁方式也是让人眼花缭乱。最早的指纹解锁就是密码和手势解锁,后来为了增加屏幕屏占比,还采用了屏下指纹和前后置指纹解锁,以及侧面指纹解锁。这么多指纹解锁方式你最喜欢哪个呢?屏下解锁2018年1月,vivo发布全球首款屏下指纹解锁手机,vivoX20UD屏幕指纹版。指纹解锁速度在0.6S左右,与传统指纹识别0…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号