什么是覆盖索引 ?

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

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

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

这种就叫覆盖索引。

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

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

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

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

相关推荐
荒川之神4 分钟前
Oracle 数据仓库星座模型(Galaxy Model)设计原则
数据库·数据仓库·oracle
杰克尼6 分钟前
redis(day03-商户查询缓存)
数据库·redis·缓存
枕布响丸辣7 分钟前
Python 操作 MySQL 数据库从入门到精通
数据库·python·mysql
zxrhhm27 分钟前
SQLServer限制特定数据库的CPU使用率,确保关键业务系统有足够的资源
数据库·sqlserver
刘~浪地球1 小时前
Redis 从入门到精通(十三):哨兵与集群
数据库·redis·缓存
Java开发追求者1 小时前
windows卸载mysql教程
mysql·mysql卸载
dyyshb1 小时前
PostgreSQL 终极兜底方案
数据库·postgresql
他们叫我技术总监2 小时前
零依赖!FineReport11 快速对接 TDengine 数据库:从驱动部署到报表实现
大数据·数据库·ai·tdengine
TDengine (老段)2 小时前
TDengine IDMP 可视化 —— 定时报告
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
曹牧2 小时前
Oracle:
数据库·oracle