MySQL篇之回表查询

一、聚集索引

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

聚集索引选取规则:

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

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

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

二、二级索引

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

三、回表查询

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

四、面试的回答

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

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

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

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

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

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

相关推荐
野犬寒鸦3 分钟前
MySQL复习记录Day01
数据库·后端
程序员木圭4 分钟前
05-告别逻辑混乱!Java 流程控制让代码学会"判断和循环"
java·后端
前端缘梦5 分钟前
Next.js 实现AI流式输出(打字机效果)
前端·面试·全栈
ward RINL8 分钟前
Spring boot启动原理及相关组件
数据库·spring boot·后端
yaaakaaang8 分钟前
三、抽象工厂模式
java·抽象工厂模式
kongba0079 分钟前
复刻 Claude Code 项目御马术缰绳系统 harness engineering 落地蓝图
java·linux·服务器
tERS ERTS11 分钟前
Spring Cloud gateway 路由规则
java
ZUNr111 分钟前
手写一个迷你版 @Column:注解到底是怎么工作的?
java
Treh UNFO16 分钟前
MySQL中的通配符
java
AI茶水间管理员16 分钟前
线程池核心线程数设为 0 会怎样?(附源码解析)
java·后端·面试