什么是覆盖索引 ?

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

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

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

这种就叫覆盖索引。

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

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

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

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

相关推荐
鱼很腾apoc3 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c
PingCAP3 小时前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
郭萌6963 小时前
多商户平台的分销佣金:为什么同一笔订单,换个时间跑会算出另一个人
mysql·php
花间相见4 小时前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin4 小时前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库
用户6279947182624 小时前
南大通用 GBase 8c 锁等待与死锁排查:从阻塞链到全局事务号
数据库
道虽迩,不行不至4 小时前
数据库自动连库执行增量脚本-Linux
linux·数据库
GeW4 小时前
新质生产力发展路线图来了,Linux和数据库人该怎么接
linux·数据库
用户125758524364 小时前
GoFrame Vue3开源后台管理系统推荐:数据库与Worker要求怎么验
数据库·后端·go
MaxHua4 小时前
达梦 DTS 迁移 MySQL 报错 - 3236:此列列表已索引 解决方案
数据库·后端