什么是覆盖索引 ?

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

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

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

这种就叫覆盖索引。

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

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

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

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

相关推荐
烤鱼骑不快13 小时前
ubuntu系统安装以及设置
linux·数据库·ubuntu
BORN(^-^)13 小时前
达梦数据库索引删除操作小记
数据库·达梦
!chen13 小时前
Oracle 高风险锁等待快速诊断手册
数据库·oracle
保定公民13 小时前
DMDRS数据库同步用户最小权限脚本示例
数据库·sql·达梦数据库·数据同步·dmdrs·同步权限
2501_9418227514 小时前
从数据库分片到水平扩展的互联网工程语法实践与多语言探索
数据库
扶尔魔ocy14 小时前
【linux C】在mysql中增加自定义的C动态库
linux·运维·mysql
QUST-Learn3D14 小时前
geometry4Sharp Ray-Mesh求交 判断点是否在几何体内部
服务器·前端·数据库
运维行者_14 小时前
跨境企业 OPM:多币种订单与物流同步管理,依靠网络自动化与 snmp 软件
大数据·运维·网络·数据库·postgresql·跨境企业
gf132111114 小时前
制作卡点视频
数据库·python·音视频
子超兄14 小时前
慢查询处理SOP
数据库