MySQL篇之回表查询

一、聚集索引

将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据。特点:必须有,而且只有一个。

聚集索引选取规则:

  1. 如果存在主键,主键索引就是聚集索引。

  2. 如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。

  3. 如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引。

二、二级索引

将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键。特点:可以存在多个。

三、回表查询

根据二级索引,找到对应的name对应的索引,然后通过聚集索引找到对应的行数据。

四、面试的回答

**面试官:**什么是聚簇索引什么是非聚簇索引 ?

**候选人:**聚簇索引主要是指数据与索引放到一块,B+树的叶子节点保存了整行数据,有且只有一个,一般情况下主键在作为聚簇索引的

非聚簇索引值的是数据与索引分开存储,B+树的叶子节点保存对应的主键,可以有多个,一般我们自己定义的索引都是非聚簇索引

**面试官:**知道什么是回表查询嘛 ?

**候选人:**嗯,其实跟刚才介绍的聚簇索引和非聚簇索引是有关系的,回表的意思就是通过二级索引找到对应的主键值,然后再通过主键值找到聚集索引中所对应的整行数据,这个过程就是回表

备注:如果面试官直接问回表,则需要先介绍聚簇索引和非聚簇索引】

相关推荐
没有bug.的程序员11 分钟前
分布式链路追踪:微服务可观测性的核心支柱
java·分布式·微服务·架构·wpf
C.R.xing11 分钟前
Pyspark分布式访问NebulaGraph图数据库
数据库·分布式·python·pyspark·nebulagraph
我是华为OD~HR~栗栗呀14 分钟前
华为OD-21届考研-Java面经
java·前端·c++·python·华为od·华为·面试
九皇叔叔15 分钟前
深度解析 PostgreSQL 中的 ctid、xmin、xmax:从原理到实战
数据库·postgresql
凤山老林16 分钟前
SpringBoot 启动时执行某些操作的 8 种方式
java·开发语言·spring boot·后端
殷丿grd_志鹏26 分钟前
开源项目RuoYi-Cloud-Plus详解——公网内网穿透到虚拟机环境(持续更新)
数据库·开源·内网穿透·虚拟机
狼爷32 分钟前
Java 开发必看:UUIDv7 终于标准化了!这次真香🔥(基于 uuid-creator 实战)
java
小高00733 分钟前
🔥🔥🔥收藏!面试常问JavaScript 中统计字符出现频率,一次弄懂!
前端·javascript·面试
知其然亦知其所以然35 分钟前
面试官问:MySQL表损坏怎么修?不会这三招你就凉了!
后端·mysql·面试
南北是北北36 分钟前
OkHttp 异步请求的“线程池 + 调度器(Dispatcher)”
面试