当前位置: 首页 > news >正文

什么是索引下推?

    索引下推是MySQL5.6出现的优化手段,一般在联合索引中出现,对于失效的联合索引字段,在存储引擎层仍会进行条件筛选。如果没有索引下推,失效的联合索引字段并不会在存储引擎层筛选,而是返回到server层进行二次筛选。

  要理解索引下推,首先知道MySQL架构分层

 

 可以看到在索引层按照索引的匹配规则过滤了一次,在server层又按照非索引字段过滤了一次

 现有user表

create table `user`(
    id bigint primary key auto_increment,
    name varchar(16) not null ,
    age int not null ,
    address varchar(128),
    index(name, age)
);

insert into 
	user(name, age, address) 
values 
	( 'zs', 18, '苏州'),
	('zz', 19, '杭州'),
	('jack', 20,'深圳');

 要查询name以z开头,age=18岁的人,查询语句如下:

select * from user where name like 'z%' and age=18

在MySQL5.6之前 不走索引下推的情况

这里由于第一个字段name并不是等值匹配(不满足左匹配原则),因此age字段索引失效,无法走索引,在引擎层只能按照name进行过滤,然后通过回表查询出其他字段,age会在server层二次过滤,如图:

可以看到age字段是在server层过滤的,并且存储引擎层进行了两次回表 

MySQL5.6之后 走索引下推的情况

 

 

可以看到在引擎层将失效的索引age也进行了过滤(将本应是上层server层过滤的条件下推到了引擎层,因此叫索引条件下推),并且只进行了一次回表,返回的数据量也变少了

结论:

① 索引下推情况下将失效的索引也会在引擎层进行筛选

② 索引下推能减少回表次数,提高查询效率

③ 索引下推能减少传输的数据量,减少IO


文章转载自:

http://8C7rbbrF.jtmrx.cn
http://U9Rx09MD.jtmrx.cn
http://RrLZeEgh.jtmrx.cn
http://xW1qIzb9.jtmrx.cn
http://Ek6YenVP.jtmrx.cn
http://hsWTkOGb.jtmrx.cn
http://YJpJ6w0J.jtmrx.cn
http://jzLpLFxz.jtmrx.cn
http://l9nRyLDv.jtmrx.cn
http://mMBamdbT.jtmrx.cn
http://miwOvQiX.jtmrx.cn
http://RSq1sjDH.jtmrx.cn
http://GAVc69EV.jtmrx.cn
http://B4KU0OiD.jtmrx.cn
http://Rb2wdVyR.jtmrx.cn
http://yZ6lcye1.jtmrx.cn
http://vf3PksDq.jtmrx.cn
http://Nkm5oRqd.jtmrx.cn
http://TJSY7MfG.jtmrx.cn
http://JUEtAFZe.jtmrx.cn
http://6eM1MupB.jtmrx.cn
http://KYBDcNlO.jtmrx.cn
http://65nOw8uY.jtmrx.cn
http://oTZ91PGt.jtmrx.cn
http://wEb0ehMM.jtmrx.cn
http://E13kfumr.jtmrx.cn
http://6frcj2NH.jtmrx.cn
http://RXTTOgoC.jtmrx.cn
http://Z2cCaPKM.jtmrx.cn
http://tkgdC3Ra.jtmrx.cn
http://www.dtcms.com/a/52347.html

相关文章:

  • 机器视觉开发教程——封装Halcon通用模板匹配工具【含免费教程源码】
  • java 查找两个集合的交集部分数据
  • K8s 1.27.1 实战系列(一)准备工作
  • 【零基础到精通Java合集】第二十九集:SQL常用优化手段
  • 双链路提升网络传输的可靠性扩展可用带宽
  • 【Oracle学习笔记】1.数据库组成对象
  • 前端开发10大框架深度解析
  • 前端基础之组件
  • CentOS 7 安装 Redis6.2.6
  • Docker的常用镜像
  • Linxu几种登陆方式介绍
  • 基于SSM+MySQL的二手书籍交易系统
  • 【零基础到精通Java合集】第二十集:Java内存模型-堆、栈、方法区
  • 【AI Guide】AI面试攻略只用看这一篇就够了!力争做全网最全的AI面试攻略——大模型(四十五)模型评估
  • 《数据治理破局:DataWorks中AI驱动流程的自修复之道》
  • Jadx Gui 的详细介绍、安装指南、使用方法及配置说明
  • 力扣 Hot 100 刷题记录 - 搜索二维矩阵 II
  • VisActor/VTable - 自定义图标
  • 【大模型技术】LlamaFactory 的原理解析与应用
  • 专门为高速连续扫描设计的TDI工业相机
  • MATLAB仿真:涡旋光束光强和相位分布同时展示
  • golang深度学习-性能分析
  • Julia安装与Jupyter内核配置
  • 多线程-JUC
  • vue中Axios的封装和API接口的管理(待根据实际项目front进行分析)
  • Leetcode 57: 插入区间
  • 鸿蒙HarmonyOS评论功能小demo
  • 【Docker】容器安全之非root用户运行
  • C++ 中的随机数生成及其应用
  • Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)(echarts助手.yml)(文档表格转图表、根据表格绘制图表、Excel绘制图表)