MySQL篇之回表查询

一、聚集索引

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

聚集索引选取规则:

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

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

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

二、二级索引

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

三、回表查询

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

四、面试的回答

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

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

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

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

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

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

相关推荐
我是无敌小恐龙几秒前
Java SE 零基础入门 Day05 类与对象核心详解(封装+构造方法+内存+变量)
java·开发语言·人工智能·python·机器学习·计算机视觉·数据挖掘
添砖java‘’4 分钟前
MYSQL操作库
数据库·mysql
逻辑驱动的ken6 分钟前
Java高频面试考点14
开发语言·数据库·算法·哈希算法
qq_189807037 分钟前
Less如何处理CSS长文本换行_封装Mixin解决不同场景需求
jvm·数据库·python
HHHHH1010HHHHH11 分钟前
CSS如何处理带有状态切换的折叠菜单_利用BEM修饰符管理状态
jvm·数据库·python
2401_8716965212 分钟前
如何在响应式网页中水平居中表单(CSS 绝对定位居中方案)
jvm·数据库·python
va学弟13 分钟前
Agent入门开发(2):个性化功能添加
java·服务器·ai
84869811913 分钟前
Cursor 用 Java + Vue3 做了一个可落地的酒店管理系统(HMS),支持多门店、RBAC、财务结算,源码开源!
java·开发语言·开源
2301_7751481514 分钟前
CSS如何减少对HTML结构依赖_利用BEM命名保持样式的逻辑独立
jvm·数据库·python
sinat_3834373621 分钟前
HTML函数调试需要高性能电脑吗_调试环境硬件需求技巧【指南】
jvm·数据库·python