联合索引生效和失效条件

news/2024/11/25 16:30:52/

联合索引生效和失效条件

  • 联合索引生效的条件
  • 索引失效的条件
  • 使用索引的一般性建议

联合索引生效的条件

联合索引又称为复合索引

两个或更多列上的索引,被称之为复合索引。

MySQL从左到右的使用索引当中的字段,一个查询可以使用索引的一部分,但只能是最左侧部分,例如索引是KEY INDEX(A, B, C), 可以支持A或者A,B或者A,B,C三种组合进行查询。但不支持B、C进行查询。

当最左侧字段是常量引用时,索引就十分有效。利用索引中的附加列可以缩小搜索的范围,但使用一个具有两列的索引不同于使用两个单独的索引。

复合索引的结构和电话簿类似,人名由姓和名构成。电话簿首先按照姓氏进行排序,然后按照名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用。如果您知道姓和名,电话簿则更为有用。但如果您只知道名不知道姓,电话簿将没有用处。

所以说创建复合索引时,应仔细考虑列的顺序。对索引当中所有列执行搜索或仅对前几列进行搜索,复合索引非常有用。仅对后面的任意列执行搜索时复合索引则没有用处。

索引失效的条件

  1. 不在索引列上做任何操作。包括但不限于计算、函数、自动或者手动类型转换会导致索引失效,而转向全表扫描。
  2. 存储引擎。不能使用索引范围条件右侧的列。
  3. 尽量使用索引覆盖。即只查询索引的查询,索引和查询列一致,减少select * 。
  4. MySQL在使用不等于的时候(!=, <>)无法使用索引,会导致全表扫描。
  5. is null, is not null 也无法使用索引。
  6. Like以通配符开头,即‘%ABC’。MySQL索引失效,会变成全表扫描。

使用索引的一般性建议

  1. 对于单键索引,尽量选择针对当前query过滤性更好的索引
  2. 在选择组合索引的时候,当前索引当中过滤性最好的字段,在索引字段顺序中位置越靠前越好
  3. 在选择组合索引的时候,尽量选择可以包含当前query的where子句当中更多字段的索引
  4. 尽可能通过分析统计信息调整query的写法来达到选择合适索引的目的。

参考资料:数据库面试题:分别谈谈联合索引生效条件和失效条件?


http://www.ppmy.cn/news/49132.html

相关文章

MySQL高级第十六篇:数据库日志有哪些(慢查询日志、通用查询日志、错误日志和二进制日志)

MySQL高级第十六篇&#xff1a;数据库日志有哪些&#xff08;慢查询日志、通用查询日志、错误日志和二进制日志&#xff09; 一、MySQL支持的日志有哪些&#xff1f;1. 日志类型总结2. 日志有什么缺点吗&#xff1f; 二、通用查询日志&#xff08;slow query log&#xff09;三…

SpringBoot中使用redis事务

本文基于SpringBoot 2.X 事务在关系型数据库的开发中经常用到&#xff0c;其实非关系型数据库&#xff0c;比如redis也有对事务的支持&#xff0c;本文主要探讨在SpringBoot中如何使用redis事务。 事务的相关介绍可以参考&#xff1a; 0、起因 在一次线上事故中&#xff0c;我们…

6.2 龙格—库塔法

学习目标&#xff1a; 学习龙格-库塔法的具体明确的学习目标可以有以下几点&#xff1a; 理解龙格-库塔法的基本思想和原理&#xff1a;我们应该了解龙格-库塔法的数值求解思想和数值误差的概念&#xff0c;包括截断误差和稳定性等基本概念&#xff0c;并且要熟悉龙格-库塔法的…

根据cadence设计图学习硬件知识 day03 了解 一些芯片 和 数据手册下载的地方

1. MT53D512M32D2DS 芯片&#xff08;动态随机存取存储器&#xff09;的技术指标 1.1 16n Prefetch (预加载) (n --芯片位宽) DDR 体系 链接&#xff1a;DDR扫盲—-关于Prefetch(预取)与Burst(突发)的深入讨论_ddr prefetch_qq_25814297-npl的博客-CSDN博客 1.2 每个通…

4.2和4.3、MAC地址、IP地址、端口

计算机网络等相关知识可以去小林coding进行巩固&#xff08;点击前往&#xff09; 4.2和4.3、MAC地址、IP地址、端口 1.MAC地址的简介2.IP地址①IP地址简介②IP地址编址方式③A类IP地址④B类IP地址⑤C类IP地址⑥D类IP地址⑧子网掩码 3.端口①简介②端口类型 1.MAC地址的简介 …

Python+Qt人脸识别职工录入管理系统

程序示例精选 PythonQt人脸识别职工录入管理系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonQt人脸识别职工录入管理系统>>编写代码&#xff0c;代码整洁&#xff0c…

“行泊舱”+出海全面发力,这家ADAS厂商跑出规模化“新速度”

进入2023年&#xff0c;智能汽车市场已经由纯技术驱动迈入了市场驱动的新周期&#xff0c;接下来的市场竞争比拼的重点将是真正的规模化普及。 《高工智能汽车研究院》认为&#xff0c;中国乘用车市场已经来到了L2普及、L2冲刺发力以及L3/L4小规模落地的并行发展周期。对于智能…

grep -nr 命令查询字符串方式

grep -nr “搜索内容” 文件路径 其中&#xff1a; -n&#xff1a;显示行号-r&#xff1a;递归查找子目录中的文件“搜索内容”&#xff1a;要搜索的内容文件路径&#xff1a;要搜索的文件路径&#xff0c;可以是单个文件或目录路径&#xff08;将会递归搜索该目录下的所有文…