MySQL建立联合索引 及其失效原理讲解

前言

在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引。
mysql使用联合索引时,需要注意的是联合索引的最左匹配原则。

mysql联合索引原理及失效原理

MySQL 联合索引(也称为复合索引或组合索引)是指在数据库表中对多个列进行索引的索引方式。联合索引的优点是可以通过索引优化查询性能,特别是对于多列查询时可以避免全表扫描。

联合索引的原理是通过对多个列的值进行排序来创建一个B-Tree结构,这样可以在查询时使用这些列作为过滤条件来快速定位记录。

联合索引失效是指当查询条件不满足联合索引的顺序或使用了范围查询(如BETWEEN><等)时,联合索引可能不会被使用,这时查询性能可能会下降。

没有遵守最左匹配原则,使用like、%和or 等情况下索引也会失效。

例如,如果有一个联合索引(col1, col2),下面的查询条件会使用到这个索引:

SELECT * FROM table WHERE col1 = 'value1' AND col2 = 'value2';

但是,如果查询条件改变顺序或使用了范围查询,则可能不会使用这个索引: 

-- 顺序不匹配,不会使用索引
SELECT * FROM table WHERE col2 = 'value2' AND col1 = 'value1';-- 使用了范围查询,可能不会使用索引
SELECT * FROM table WHERE col1 = 'value1' AND col2 > 'value2';

 为了确保联合索引的有效使用,可以通过调整查询条件的顺序来保持和索引一致,或者对于需要范围查询的列,确保查询能够使用索引的最左前缀特性。

联合索引的好处

  • 减少索引建立的开销,建了一个(a,b,c)的复合索引,那么实际等于建了(a),(a,b),(a,b,c)三个索引;
  • 覆盖索引 无需回表,这减少了很多的随机io操作;所以,在真正的实际应用中,覆盖索引是主要的提升性能的优化手段之一。
  • 缩小筛选范围。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商店数据(九)

目录 65.店铺入驻字段表 66.店铺分类表 67.店铺配置表 68.店铺快递公司关联表 69.店铺资料附加表 70.店铺入驻流程表 71.店铺运费模板表 72.消息类型表 65.店铺入驻字段表 CREATE TABLE wst_bases (id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增id,flowld int(11)…

如何安全进行速卖通自养号测评操作?

对于新加入的卖家而言&#xff0c;进行销量测评显得尤为关键。速卖通平台上的新店往往难以获得活动的扶持&#xff0c;且初始流量相当有限。因此&#xff0c;开店的首要任务便是积极展开测评工作&#xff0c;努力积累初始的评论和销售记录。测评的益处颇为显著&#xff0c;它不…

SpringBoot项目启动,传参有哪些方式?

SpringBoot项目启动&#xff0c;传参有哪些方式&#xff1f; 1.Spring级别的参数 直接在启动 Spring Boot 应用的命令行中使用 -- 后跟参数名和值的方式来传递参数。 记住&#xff1a;一般是对于Spring Boot应用特有的配置参数&#xff0c;确保它们遵循Spring Boot的配置属性命…

【视频打架行为数据集】打斗场景视频数据集简要介绍

一、UBI-Fight&#xff08;异常事件检测数据集&#xff09; 介绍 UBI-Fights 数据集是一个独特的全新大型数据集&#xff0c;涉及特定的异常检测并仍然在打斗场景中提供广泛的多样性&#xff0c;该数据集包含 80 小时的视频&#xff0c;在帧级别进行了完全注释。由 1000 个视…

# 从浅入深 学习 SpringCloud 微服务架构(五)Consul(2)

从浅入深 学习 SpringCloud 微服务架构&#xff08;五&#xff09;Consul&#xff08;2&#xff09; 段子手168 一、consul 集群&#xff1a;consul 集群的基础知识 1、启动 sonsul 服务命令&#xff1a; 以开发者模式快速启动&#xff1a; consul agent -dev -client0.0.0…

13.JAVAEE之HTTP协议

HTTP 最新的版本应该是 HTTP/3.0 目前大规模使用的版本 HTTP/1.1 使用 HTTP 协议的场景 1.浏览器打开网站 (基本上) 2.手机 APP 访问对应的服务器 (大概率) 学习 HTTP 协议, 重点学习 HTTP 的报文格式 前面的 TCP/IP/UDP 和这些不同, HTTP 的报文格式,要分两个部分来看待.请求…

移动端日志采集与分析最佳实践

前言 做为一名移动端开发者&#xff0c;深刻体会日志采集对工程师来说具有重要意义&#xff0c;遇到问题除了 debug 调试就是看日志了&#xff0c;通过看日志可以帮助我们了解应用程序运行状况、优化用户体验、保障数据安全依据&#xff0c;本文将介绍日志采集的重要性、移动端…

高级防爬还得是公众号

平时一天也就1K的流量&#xff0c;最近流量暴涨&#xff0c;已经用自研的WAF防火墙阻挡了很多恶意攻击和爬虫&#xff0c;已经过滤掉很多低级攻击和爬取了。 多出的流量&#xff0c;也仅仅多了一个导航 dh.yu7s.com 用户&#xff0c;多时没有用的机器人爬虫&#xff0c;不封掉浪…

EXCEL表格中的数字,为什么每次打开会自动变成日期?

一、典型现象 在工作中&#xff0c;有时会发现公司里的报表&#xff0c;经过多人多次的重复的使用和修改后&#xff0c;会出现这种情况&#xff1a; 1.在表格里按照需要输入数字&#xff0c;保存工作簿。 2.然而&#xff0c;再次打开工作簿&#xff0c;里面的数字变成日期&a…

c#学习入门2

十、运算符 1&#xff09;算术运算符是用于数值类型变量计算的运算符&#xff0c;它返回的结果是数值 1.赋值符号 2.算数运算符 加 减- 乘* 除/ 取余% 3.算数运算符的优先级 4.算术运算符的复合运算 5.算术运算符的自增减 2&#xff09;字符串拼接 1.字符串拼接方式1 注意&…

自定义View-旋转变色圆角三角形的绘制

本文字数&#xff1a;3151字 预计阅读时间&#xff1a;20分钟 在现代设计中&#xff0c;动效图在APP的UI界面中所起到的作用无疑是显著的。相比于静态的界面&#xff0c;动效更符合人类的自然认知体系&#xff0c;它有效地降低了用户的认知负载&#xff0c;UI动效俨然已经成为了…

错误代码126:加载d3dcompiler_43.dll失败,分享多种解决方法

在正常使用电脑的过程中&#xff0c;当我尝试启动并运行一款心仪的游戏时&#xff0c;系统却突然弹出一个令人困扰的错误提示“错误代码126:加载d3dcompiler_43.dll失败”&#xff0c;它会导致游戏无法正常运行。为了解决这个问题&#xff0c;我经过多次尝试和总结&#xff0c;…

Docker容器配置进阶

一、容器的自动重启 Docker提供重启策略选项控制容器退出时或Docker重启时是否自动启动该容器。重启策略能够确保关联的多个容器按照正确的顺序启动。Docker建议使用重启策略&#xff0c;并避免使用进程管理器启动容器。运行容器时可以使用--restart选项指定重启策略。容器的重…

VMware ESXi虚拟机备份的方法和步骤

关于虚拟机备份 VMware ESXi 是 VMware vSphere 企业虚拟化套件的核心组件。在版本4.1之前&#xff0c;它一直被称为ESX。ESXi是一种裸机管理程序&#xff0c;直接安装在物理服务器上&#xff0c;它提供对底层资源的直接访问和控制&#xff0c;允许您在单个物理主机上创建和运…

网鼎杯-2018-unfinish解题方法

BUUCTF在线评测这里可以解题无需搭建 进入这题后我们会得到这样一个界面 这里我们会发现登录不进去也没有注册界面以及源码&#xff0c;这里我们需要获取它其他的一些界面找注入机会&#xff0c;这里有两种方式找其他界面&#xff0c;一种是猜这里是登录界面那么必定就会有注册…

网络安全新挑战:通用人工智能(AGI)等级保护指南

通用人工智能&#xff08;AGI&#xff09;的发展现状及趋势 随着2023年大语言模型应用的划时代突破&#xff0c;以ChatGPT为杰出代表的此类技术犹如一股洪流&#xff0c;彻底颠覆了人类与机器智能交互的疆界&#xff0c;引领通用人工智能&#xff08;AGI&#xff09;步入一个崭…

Flume 搭建和操作使用的详细教程

下载 官网下载: https://flume.apache.org/download.html 安装 基本上不需要做什么配置,下载后解压即可使用!! 下载安装包:apache-flume-1.11.0-bin .tar.gz 上传至 linux 的 /opt/ 目录下 解压至 /opt/apps(可以自定义目录) 修改简短名称(方便配置) 配置环境变量(方…

国家开放大学2024年春《国家赔偿法-山东》形成性考核一二三四终结性考试参考答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 【单选题】张某重伤他人被刑事拘留。一个月后&#xff0c;公…

Vue typescript 获得html 元素

方法一 getElementById or something else <div class"book-navbar-menutree" id"menuTree" name"menuTree"> onMounted(() > { var menu document.getElementById(menuTree) as HTMLElementmenu.innerHTML menuTreeStr.value }) …

[SWPUCTF-2022-新生赛]ez_sql

title:[SWPUCTF 2022 新生赛]ez_sql 审题 根据提示&#xff0c;POST传参 得到假的flag 判断类型 字符型注入 判断列数 发现空格和’or’被过滤 重新构造 nss-1/**/oorrder/**/by/**/4#发现为3个字段 采用联合注入union 爆库 发现union被过滤&#xff0c;双写union绕过 发…