MySQL篇之回表查询

一、聚集索引

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

聚集索引选取规则:

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

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

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

二、二级索引

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

三、回表查询

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

四、面试的回答

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

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

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

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

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

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

相关推荐
夏幻灵7 分钟前
写给初次用IDEA的新人
java·ide·intellij-idea
jgyzl19 分钟前
2026.1.2 Tomcat保姆级使用教程
java·tomcat
墨白曦煜26 分钟前
硬核图解:MySQL 是如何利用 MVCC + 锁实现“可重复读”的?
数据库·mysql
知无不研32 分钟前
.练习- Java字符串之String类创建字符串之使用equals和==判断字符串是否相等
java·开发语言
IT英语写作研习社36 分钟前
一句话解释Java 8 流streams 和函数式接口、λ表达式的关系
java
Slow菜鸟38 分钟前
Java基础 | JWT登录场景化最优方案(一)
java·开发语言
DarkAthena1 小时前
【DuckDB】探索函数调用新范式:点操作符链式调用
数据库·sql·duckdb
自己的九又四分之三站台1 小时前
PG GraphQL详细介绍与基本使用
数据库·sql·graphql
大模型RAG和Agent技术实践1 小时前
SQL Agent从“黑盒“到“全透明“:基于LangGraph+Phoenix的可观测性实战指南
数据库·人工智能·sql·agent·langgraph
IT枫斗者1 小时前
Spring Boot 4.0 正式发布:新一代起点到底“新”在哪?(Spring Framework 7 / Java 25 / JSpecify / API 版本管理 / HTTP Service
java·开发语言·spring boot·后端·python·spring·http