什么是覆盖索引 ?

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

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

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

这种就叫覆盖索引。

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

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

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

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

相关推荐
2601_962056233 小时前
易信easyMarkets:澄清诈骗疑问时更应关注官方出金流程
mysql
上学的小垃圾8 小时前
基于docker安装MySQL(openEuler系统)
linux·mysql·docker·容器
润乾软件9 小时前
SQLazy:分组累计求和
sql·sqlazy
倔强的石头_10 小时前
连接数失控排查:从数据库会话、应用线程池到连接池泄漏
数据库
hzxpaipai10 小时前
企业官网技术架构拆解:前端、后台、数据库、服务器如何协同
前端·数据库·架构
爱吃火鸡面呀11 小时前
MySQL DQL 子查询详解:从标量、列、行到表子查询的完整实战
大数据·数据库·mysql
harmony&11 小时前
OpenStack 云平台管理实战:从 Keystone 认证到 Nova 计算调度
数据库·openstack
betazhou12 小时前
Apache Seatunnel 抽取Oracle数据库测试
数据库·oracle·apache·seatunnel
devilnumber14 小时前
Oracle 与 MySQL substr 函数差异总结
java·数据库·mysql·oracle