什么是覆盖索引 ?

走当前索引就足够,而无需回表就能找到所有数据,就叫覆盖索引。

比如 key1 上有索引。(它是一个普通的二级索引)。

那么select key1 from s1 where key1 = 'a'

这种就叫覆盖索引。

表现就是explain时, Extra 那里显示 using Index

为啥无需回表?因为b+树子节点上,存了该索引字段和主键。而此时找的就是该字段,所以无需回表使用聚簇索引,这种就叫覆盖索引。

如果写成select * from s1 where key1 = 'a'

这种就不是覆盖索引,因为其他字段没有索引,它需要回表(回去使用聚簇索引,再找一遍数据)。表现就是explain时,Extra 那里 是null。

相关推荐
小萌新上大分13 分钟前
mysql主从复制搭建
mysql·mysql主从复制·mysql主从复制配置·mysql主从复制的搭建·mysql主从复制的原理·mysql安装入门
安审若无13 分钟前
oracel迁移数据文件至其他目录操作步骤
数据库
sunxunyong32 分钟前
doris运维命令
java·运维·数据库
华仔啊1 小时前
这 10 个 MySQL 高级用法,让你的代码又快又好看
后端·mysql
小鸡吃米…1 小时前
Python PyQt6教程七-控件
数据库·python
忍冬行者1 小时前
清理三主三从redis集群的过期key和键值超过10M的key
数据库·redis·缓存
TimberWill1 小时前
使用Redis队列优化内存队列
数据库·redis·缓存
Knight_AL3 小时前
MySQL 中 UPDATE 语句的执行过程全解析
数据库·mysql
Li.CQ3 小时前
SQL学习笔记(二)
笔记·sql·学习
yngsqq3 小时前
兰顿蚂蚁——CAD二次开发
数据库