什么是覆盖索引 ?

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

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

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

这种就叫覆盖索引。

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

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

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

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

相关推荐
资生算法程序员_畅想家_剑魔3 分钟前
Java常见技术分享-26-事务安全-锁机制-作用与分类
java·开发语言·数据库
Vic101015 分钟前
PostgreSQL 中 nextval() 的线程安全性解析
java·数据库·postgresql
写代码的小阿帆44 分钟前
Redis缓存健壮性——穿透、雪崩与击穿防护
数据库·redis·缓存
L1624761 小时前
linux环境安装MySQL的详细步骤(二进制包形式)
linux·运维·mysql
wangqiaowq1 小时前
使用 mysqldump 导出 + mysql 导入
数据库
默默在路上1 小时前
CentOS Stream 9 安装mysql8.0
linux·mysql·centos
qq_317620311 小时前
第23章-中级项目练习案例(15个)
数据库·爬虫·web开发·python项目·api开发·python案例
是三好2 小时前
SQL 性能分析及优化
android·数据库·sql
indexsunny2 小时前
互联网大厂Java面试实战:从Spring Boot到微服务的逐步深入
java·数据库·spring boot·微服务·kafka·监控·安全认证
小光学长2 小时前
ssm手工艺品交易平台4xccvou1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring