索引下推(Index Condition Pushdown,简称 ICP)

Mysql可以分为Server层和存储引擎层

 所以,最终进行I/O的是存储引擎对文件系统进行I/O操作

索引下推(Index Condition Pushdown,简称 ICP)

对应InnoDB,索引下推适用于非聚簇索引(二级索引)。

当禁用ICP时,如果使用了索引a,b进行查询,Server会先使用a通过存储引擎去查索引B+树,通过索引拿到一个主键,这时候Server会使用这一个主键去回表再去查数据,所以每次都要回表,I/O频繁,大大降低了性能。然后Server层根据查回来的数据再使用索引b进行一次过滤,最终返回数据。

当启用ICP时,如果使用了索引a,b进行查询,Server会使用a和b通过存储引擎去查B+树,查到a的子节点,同时在a的子节点查符合b的主键,然后直接拿到同时符合条件a和b的主键,然后Server层进行一次回表查询,就可以直接返回数据。

疑问:索引下推是适用于二级索引,那未开启ICP,且联合索引(a,b,c)的情况,联合索引同时使用a,b去查的话,是使用a查回来的所有主键去回表,然后Server过滤 ,还是用同时满足a和b的主键去回表查数据呢?

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

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

相关文章

数据结构进阶篇 之【选择排序】详细讲解(选择排序,堆排序)

民以食为天,我以乐为先 嘴上来的嘘寒问暖,不如直接打笔巨款 一、选择排序 1.直接选择排序 SelectSort 1.1 基本思想 1.2 实现原理 1.3 代码实现 1.4 直接选择排序的特性总结 2.堆排序 HeapSort 跳转链接:数据结构 之 堆的应用 二、完…

单片机中的RAM vs ROM

其实,单片机就是个小计算机。大计算机少不了的数据存储系统,单片机一样有,而且往往和CPU集成在一起,显得更加小巧灵活。 直到90年代初,国内容易得到的单片机是8031:不带存储器的芯片,要想工作&a…

FPGA高端项目:解码索尼IMX327 MIPI相机+图像缩放+视频拼接+HDMI输出,提供开发板+工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理自研HLS图像缩放详解Video Mixer…

Django详细教程(二) - 部门用户管理案例

文章目录 前言一、新建项目二、新建app三、设计表结构四、新建数据库五、新建静态文件六、部门管理1.部门展示2.部门添加3.部门删除4.部门编辑 七、模板继承八、用户管理1.辨析三种方法方法一:原始方法方法二:Form组件(简便)方法三:ModelForm…

Python | Leetcode Python题解之第8题字符串转换整数atoi

题目: 题解: INT_MAX 2 ** 31 - 1 INT_MIN -2 ** 31class Automaton:def __init__(self):self.state startself.sign 1self.ans 0self.table {start: [start, signed, in_number, end],signed: [end, end, in_number, end],in_number: [end, end,…

git源码泄露

Git 源码泄露 开发人员会使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以利用这个漏洞直接获得网页源码。 确定是否存在泄漏 (1&…

C++相关概念和易错语法(2)(引用、内联函数、auto类型)

1.引用和指针的关系 引用在语法层面上不开辟新的空间,是对变量或别名取别名,我们对别名进行的任何操作也会同样作用于变量本身,这和形参有本质的区别,它的功能更像是指针。事实上,引用底层的实现就是指针,…

毅力流体设备现已加入2024年第13届生物发酵展

参展企业介绍 温州毅力流体设备有限公司位于浙江温州,这里海、陆、空交通网发达,地理位置优越。是一家经浙江-其他工商机关注册、依法经营的法人机构。 温州毅力流体设备有限公司所生产产品包括交通运输,船舶救生设备,空气呼吸器,等等,所生产…

JavaScript中什么叫深拷贝?

在 JavaScript 中,深拷贝指的是创建一个新的对象,这个新的对象与原始对象完全独立,没有任何共享的属性或者数据,它们不共享同一块内存地址。深拷贝会复制原始对象的所有属性和嵌套对象的所有属性,包括嵌套对象中的属性…

C#,简单,精巧,实用的文件夹时间整理工具FolderTime

点击下载本文软件(5积分): https://download.csdn.net/download/beijinghorn/89071073https://download.csdn.net/download/beijinghorn/89071073 百度网盘(不需积分): https://pan.baidu.com/s/1FwCsSz…

数字乡村创新之路:科技引领农村实现高质量发展

随着信息技术的快速发展,数字乡村建设已成为推动农村高质量发展的重要引擎。数字乡村通过科技创新,不仅改变了传统农业生产方式,也提升了乡村治理水平,为农民带来了更加便捷的生活。本文将从数字乡村的内涵、科技引领农村高质量发…

HCIP综合实验

各个路由器配置 R1 配置IP [R1-GigabitEthernet0/0/0]ip add 192.168.1.2 24 [R1-Serial4/0/0]ip add 15.1.1.1 24 配置缺省 [R1]ip route-static 0.0.0.0 0 15.1.1.2 接受认证 [R1-Serial4/0/1]ppp pap local-user tao password cipher tao 配置隧道地址 [R1-Tunnel…

微信怎么恢复好友?7个方法助你轻松寻回失联好友

在数字化社交日益盛行的今天,微信作为我们日常生活中不可或缺的沟通工具,承载着与亲朋好友、同事伙伴之间的深厚情谊。然而,有时由于误操作或其他原因,我们可能会不小心删除了某些重要的微信好友,这时,如何…

python file怎么打开

Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。 注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方…

管理科学笔记

1.线性规划 画出区域,代入点计算最大最小值 2.最小生成树 a.断线法,从大的开始断 b.选择法,从小的开始选 3.匈牙利法 维度数量直线覆盖所有的0 4.一直选最当前路线最短路径 5.线性规划 6.决策论

OSError: Can‘t load tokenizer for ‘bert-base-chinese‘

文章目录 OSError: Cant load tokenizer for bert-base-chinese1.问题描述2.解决办法 OSError: Can’t load tokenizer for ‘bert-base-chinese’ 1.问题描述 使用from_pretrained()函数从预训练的权重中加载模型时报错: OSError: Can’t load tokenizer for ‘…

剑指Offer题目笔记24(集合的组合、排序)

面试题79: 问题: ​ 输入一个不含重复数字的数据集合,找出它的所有子集。 解决方案: ​ 使用回溯法。子集就是从一个集合中选出若干元素。如果集合中包含n个元素,那么生成子集可以分为n步,每一步从集合中…

Python控制浏览器——selenium模块

Python控制浏览器——selenium模块 目录 Python控制浏览器——selenium模块准备工作【1】安装selenium【2】安装浏览器驱动【3】测试驱动(作者是Edge) 导航和操作窗口导航返回前进刷新最大化窗口切换选项卡 查找和操作元素8种基本By定位方式[1]ID[2]Name…

ndk ffmpeg

报错: 解决办法: 报错 解决办法:

纯CSS实现未读消息显示99+

在大佬那看到这个小技巧&#xff0c;我觉得这个功能点还挺常用&#xff0c;所以给大家分享下具体的实现。当未读消息数小于100的时候显示准确数值&#xff0c;大于99的时候显示99。 1. 实现效果 2. 组件封装 <template><span class"col"><sup :styl…