什么是覆盖索引 ?

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

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

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

这种就叫覆盖索引。

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

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

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

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

相关推荐
Lucifer三思而后行2 分钟前
TDSQL MySQL 版 DBA 实用 100 条命令
mysql·tdsql
~光~~1 小时前
【嵌入式linux学习_OV8858 bring up】L2_V4L2与Ov8858
linux·数据库·学习
菜地里的小菜鸟2 小时前
达梦数据库备份与恢复
数据库·达梦·达梦数据库备份与恢复
阳光九叶草LXGZXJ3 小时前
达梦数据库-报错-11-cmd 13 validate error
linux·运维·数据库·sql·学习
PGCCC4 小时前
PostgreSQL 数据库认证体系技术解析:PCA / PCP / PCM 三级能力模型与考纲拆解
数据库·postgresql·pcm
wWYy.4 小时前
Mysql:覆盖索引
android·数据库·mysql
long3164 小时前
PostgreSQL 学习资料 · 入门 / 练习 / 精通 / 扩展
java·数据结构·数据库·spring boot·sql·postgresql·数据库开发
拳里剑气4 小时前
Linux:进程间通信
linux·运维·数据库·进程
阳光九叶草LXGZXJ4 小时前
达梦数据库-报错-12-[-7184]:对象定义[XXX]被修改,版本检查失败
linux·运维·服务器·数据库·sql·学习
惜分飞4 小时前
Oracle Block Edit Tool (obet) 功能增强–2026.07
数据库·oracle·obet