索引下推介绍

news2025/1/24 22:47:37

介绍

索引条件下推,也叫索引下推,英文全称‘Index Condition Pushdown’, 简称ICP。

作用

索引下推是MySQL5.6新添加的特性,用于优化数据的查询。

MySQL5.6之前

通过使用非主键索引进行查询的时候,存储引擎通过索引查询数据。

然后将结果返回给MySQL server层,在server层判断是否符合条件。

MySQL5.6及以上版本

可以使用索引下推的特性。

当存在索引的列作为判断条件时,MySQL server将这一部分判断条件传递给存储引擎。

然后存储引擎会筛选出符合MySQL server传递条件的索引项。

即在存储引擎层根据索引条件过滤掉不符合条件的索引项,然后回表查询得到结果,将结果返回给MySQL server。

有了索引下推的优化,在满足一定的条件下,存储引擎层会在回表查询之前对数据进行过滤,可以减少存储引擎回表查询的次数。

举例说明

假设有一张用户信息表user_info

表有三个字段name, level, weapon(装备),建立联合索引(name, level), 表初始数据如图:
在这里插入图片描述
假如需要匹配姓名第一个字为"大“,并且level为1的用户,SQL语句为:

SELECT * FROM user_info WHERE name LIKE "大%" AND level = 1;

该语句的具体执行

MySQL 5.6之前

没有索引下推,其执行过程如图:
在这里插入图片描述
查询条件name“大%”不是等值匹配。

根据最左匹配原则,在(name, level)索引树上只用到name去匹配,查找到两条记录(id为1和4)。

拿到这两条记录的id分别回表查询,然后将结果返回给MySQL server。

在MySQL server层进行level = 1字段的判断。

MySQL 5.6之后

MySQL5.6及以上版本的执行过程如下:
在这里插入图片描述
相比5.6以前的版本,多了索引下推的优化。

在索引遍历过程中,对索引中的字段先做判断,过滤掉不符合条件的索引项。

也就是判断level是否等于1,level不为1则直接跳过。

因此在(name,level)索引树只匹配一个记录,之后拿着此记录对应的id(id=1)回表查询全部数据。

整个过程回表1次。

判断方法

可以使用explain查看是否使用了索引下推。

当explain输出的Extra列的值为Using Index condition,则标识使用了索引下推。

总结

从上面的列子可以看出,使用索引下推在某些场景下可以有效减少回表次数,从而提高查询效率。

参考资料:什么是索引下推?


 

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

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

相关文章

字节4面通过,我可以跟面试官要30K吗?

春招,秋招,社招,我们程序员的面试之路,是挺难的,过了HR,还得被技术面,小编在去各个大厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入…

市面上那里有稳定L2股票行情数据接口?

随着市场的发展和技术的进步,level2股票行情数据接口已经成为股票交易软件的标准配置之一。虽然这些券商软件的功能在很大程度上相似,但它们仍然有自己的特点和优势。 例如:通过股票交易所以其专业的研究报告和丰富的信息服务而受到广泛关注&…

WebMagic - 创意前端项目集合(点击链接可在电脑上查看效果)

WebMagic - 创意前端项目集合 欢迎来到 WebMagic 仓库!这里汇集了一系列令人惊叹的前端项目,涵盖了HTML5、CSS3和JS等多项技术。无论你是前端开发者、设计师,还是对创意互动内容感兴趣的人,这个仓库都将为你带来无尽的惊喜。 每…

大数据平台是什么意思?有什么用?一般包含哪些模块?

大数据时代,还有很多人不知道大数据平台是什么意思?有什么用?一般包含哪些模块?今天我们就一起来简单了解一下吧!仅供参考哦! 大数据平台是什么意思?有什么用?一般包含哪些模块&am…

windbg常见问题--分析CPU高

项目场景: 某天工作时在运维群中收到服务器告警提示cpu基本满负荷了,这个服务已经都运行了快3个月了。 信息收集 对于cpu高问题,先在现场环境观察排除一些外在因素, 程序的内存是否正常,比如有内存泄漏&#xff0c…

【SpringCloud】Gateway使用

文章目录 概述阻塞式处理模型和非阻塞处理模型概念阻塞式处理模型 三大核心概念 工作流程使用POMYML启动类配置路由通过编码进行配置动态路由常用的Route Predicate自定义全局过滤器自定义filter 官网 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1…

SpringBoot中Controller调用Controller (demo)

1. 使用spring上下文直接调用 import com.ruoyi.common.utils.spring.SpringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;Slf4j RestControlle…

aardio - 制作ico图标

代码如下: import win.ui; /*DSG{{*/ var winform win.form(text"aardio 制作ico图标 by 光庆";right687;bottom503) winform.add( add{cls"button";text"添加";left528;top8;right672;bottom48;z2}; button{cls"button"…

【Rust】Rust学习 第十六章无畏并发

安全且高效的处理并发编程是 Rust 的另一个主要目标。并发编程(Concurrent programming),代表程序的不同部分相互独立的执行,而 并行编程(parallel programming)代表程序不同部分于同时执行,这两…

Java虚拟机(JVM):堆溢出

一、概念 Java堆溢出(Java Heap Overflow)是指在Java程序中,当创建对象时,无法分配足够的内存空间来存储对象,导致堆内存溢出的情况。 Java堆是Java虚拟机中用于存储对象的一块内存区域。当程序创建对象时&#xff0c…

高忆管理:回购潮继续!32家科创板公司齐发公告,市场反弹信号?

科创板回购潮来袭。 8月17日晚间,32家科创板公司齐发回购公告,由实控人、董事长提议回购公司股份方案。金额由500万至4亿元不等。回购目的首要用于职工持股方案或许股权鼓励。 从公司事务来看,本次方案回购的公司有10家从事半导体芯片相关职…

1+X试点Web前端开发考证实训室建设方案

一 、系统概述 1X试点Web前端开发是计算机类专业重要的核心课程,课程所包含的教学内容多,实践性强,并且相关技术更新快。传统的课堂讲授模式以教师为中心,学生被动式接收,难以调动学生学习的积极性和主动性。混合式教学…

SSH命令详解

SSH(远程连接工具)连接原理:ssh服务是一个守护进程,系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换信息。…

【宝藏应用】AI绘图网站

序言 这是一个通过AI模型进行绘制图片的网站。 有图有真相 这些是我在上面找的AI生成的图片,感觉怎么样呢?是不是看起来接近真人的精修图片了? 地址 链接: LiblibAI

jenkins配置详解

1. 部署Jenkins 参考文档:Linux 2. Jenkins安装插件 参考文档:https://yuque.antfin-inc.com/antchain/uz9o3b/qgstlw 3. 目录初始化 mkdir -p /var/lib/jenkins/output chown -R jenkins:jenkins /var/lib/jenkinsmkdir -p /tmp/jenkins chown -R …

成瘾机制中微生物群的神秘角色

谷禾健康 成瘾是一种大脑疾病,受害者无法控制地对某种物质或行为产生强烈的依赖和渴求,尽管这种行为会产生有害的后果。成瘾包括一系列物质滥用障碍,例如药物、酒精、香烟,过度饮食。近年来,吸毒成瘾急剧上升&#xff…

前端开发怎么解决性能优化的问题? - 易智编译EaseEditing

前端性能优化是确保网站或应用在加载速度、响应性和用户体验等方面达到最佳状态的关键任务。以下是一些解决前端性能优化问题的方法: 压缩和合并代码: 压缩和合并CSS、JavaScript和HTML文件可以减少文件大小,加快加载速度。使用压缩工具&am…

AI 绘画Stable Diffusion 研究(十一)sd图生图功能详解-美女换装

免责声明: 本案例所用安装包免费提供,无任何盈利目的。 大家好,我是风雨无阻。 为了让大家更直观的了解图生图功能,明白图生图功能到底是干嘛的,能做什么事情?今天我们继续介绍图生图的实用案例-美女换装的制作。 对于…

香港ITA2023高峰论坛,Dtop环球嘉年华亚洲环球节点受邀出席

Web 3.0回归,建构黄金新起点。Web 3.0是数字技术与经济体系融合性的创新框架,是未来网络产业发展的趋势。为加速推进创新科技与文化艺术的融合发展,充分利用香港的国际化优势和开放的政策环境,汇聚全球资源,助力香港国际创新科技中心和中外文化艺术交流中心的进一步建设和发展,…

Mac电脑系统瘦身清理缓存软件CleanMyMac2023

在忙碌的现代生活中,保持身材苗条是许多人的追求。控制饮食和进行适当的运动当然是瘦身的关键,但你知道吗?你的Mac电脑也需要进行清理,以保持其最佳状态。其中一项重要的清理工作就是给Mac清理缓存。本文将向你介绍如何轻松给Mac清…