什么是覆盖索引 ?

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

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

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

这种就叫覆盖索引。

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

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

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

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

相关推荐
小果因子实验室2 分钟前
策略研究--qmt实现新股自动申购卖出策略
数据库
Darling噜啦啦9 分钟前
从零实战Milvus向量数据库:用RAG打造你的AI日记助手
数据库
淼澄研学37 分钟前
PyTorch深度学习实战:5个核心方法从0到1构建神经网络
前端·数据库·python
脑子进水养啥鱼?39 分钟前
where id > ‘5‘ 的查询 sql 查不到 id = ‘10‘ 的数据?
数据库·sql·postgresql
吴声子夜歌1 小时前
MongoDB 4.2——分片简介
数据库·mongodb
腾渊信息科技公司1 小时前
工业时序数据存储选型实战:从PostgreSQL到TDengine,查询从15秒到200ms
数据库·postgresql·tdengine
TDengine (老段)1 小时前
TDengine Node.js 与 C# 连接器 — Web 服务与 .NET 集成
大数据·数据库·node.js·c#·.net·时序数据库·tdengine
l1t1 小时前
PostgreSQL 11–18 中的 SQL 改进:个人精选-1
数据库·sql·postgresql
逃跑的浣熊2 小时前
MySQL 性能分析报告:Page Cache 与 fsync 对读写性能的影响
数据库
eam0511232 小时前
简易AI SQL助手搭建方式
数据库·人工智能·sql