当前位置: 首页 > news >正文

聚簇索引和非聚簇索引的区别

1. 什么是聚簇索引(Clustered Index)

InnoDB 中:

PRIMARY KEY(id)

对应的索引就是聚簇索引。

特点:

数据和索引存储在一起。

例如:

主键索引(B+Tree) 10 / \ / \ 5 20 叶子节点: 1 -> 用户1完整数据 2 -> 用户2完整数据 3 -> 用户3完整数据

叶子节点保存:

整行数据

例如:

id=1,name=Tom,age=18

聚簇索引特点

叶子节点:

存放完整记录

所以:

select * from user where id = 1;

过程:

主键索引 ↓ 定位叶子节点 ↓ 获得完整数据

只查一次树。


2. 什么是非聚簇索引(二级索引)

例如:

create index idx_name on user(name);

这是普通索引。

又叫:

Secondary Index 二级索引 辅助索引

叶子节点存什么?

不是完整数据。

而是:

索引列 + 主键值

例如:

Tom -> 1 Jack -> 2 Lucy -> 3

这里:

1、2、3

其实就是:

主键ID

3. 查询过程区别

假设:

select * from user where name='Tom';

第一步

先查普通索引:

idx_name Tom -> 1

得到:

id = 1

第二步

再去主键索引查:

id = 1

找到:

完整行数据

整个过程:

普通索引 ↓ 获取主键id ↓ 主键索引 ↓ 获取数据

这个过程叫:

回表(Back To Table)


4. 为什么会有回表

因为二级索引叶子节点没有保存完整数据。

只保存:

索引列 + 主键值

例如:

Lucy -> 3

数据库拿到:

id=3

之后必须:

再查一次聚簇索引

获取:

name age address ...

5. 什么情况不会回表

例如:

select id,name from user where name='Tom';

二级索引:

name + id

已经包含:

id name

需要的数据都在索引里。

无需再查主键树。

这叫:

覆盖索引(Covering Index)


执行计划:

EXPLAIN

会看到:

Using index

说明:

没有回表

6. 聚簇索引和非聚簇索引对比

对比项聚簇索引非聚簇索引
数量只能一个可以多个
对应主键索引普通索引、唯一索引
叶子节点完整数据主键值
查询次数一次两次(回表)
查询速度更快稍慢
是否回表不会可能会
存储顺序按主键顺序按索引列顺序

7. 为什么只能有一个聚簇索引

因为:

数据只能按照一种顺序存储

例如:

数据按:

id

排序存储:

1 2 3 4 5

那就不可能同时按:

name

排序存储:

Jack Lucy Tom

因此:

聚簇索引只能有一个

而:

普通索引可以有很多个

因为它们只是额外维护的B+Tree。


面试标准答案

InnoDB 中主键索引是聚簇索引,其叶子节点存储完整数据记录,因此通过主键查询时只需查一次 B+Tree 即可获取数据。
普通索引属于非聚簇索引(二级索引),其叶子节点存储的是索引列和主键值,而不保存完整数据。查询时先通过二级索引找到主键,再通过主键索引获取完整记录,这个过程称为回表。
如果查询字段全部包含在二级索引中,则可以直接返回结果,形成覆盖索引,避免回表,提高查询性能。
由于数据只能按一种物理顺序存储,因此一个表只能有一个聚簇索引,但可以有多个非聚簇索引。

http://www.rkmt.cn/news/1535304.html

相关文章:

  • 临沧市_闲置爱马仕、劳力士变现指南:临沧市奢侈品手表包包回收门店实地测评 - 奢金汇
  • 乌鲁木齐闲置黄金变现攻略与靠谱门店推荐 - 余生黄金回收
  • 【状态估计】基于无卡尔曼滤波器和卡尔曼滤波器实现GPS-INS融合对6自由度无人机的状态估计附matlab代码
  • Kimi K2.5:零代码智能体集群驱动的自然语言办公操作系统
  • Tinymind架构解析:探索GitHub驱动的博客系统核心代码实现
  • [Linux]从发行版差异到系统排查:一份Linux部署指令的入门混搭笔记
  • 中国6N级高纯度钨粉断供,日本高端六氟化钨停产,中国企业逆袭在望!
  • Mission Planner 3.2 Windows安装深度指南:驱动、.NET、COM口与MAVLink全链路解析
  • ARIMA(p,d,q)参数详解:时间序列建模的可解释性基石
  • 代码算账偶发一分钱误差?IT留学生快学大厂标准的精准记账法「蒸汽求职分享」
  • 3分钟快速解密:Windows平台NCM格式转换终极方案
  • Spring AI RAG实战:Java企业级知识库问答系统搭建
  • 2026南京市家用空调-中央空调等维修安装移机加氟-本地精选指南 -欧米到家 - 欧米到家
  • 2026北京劳力士回收门店TOP5排名正规靠谱机构推荐 - 博客万
  • Codex Windows桌面接管能力解析:Computer Use技术原理与落地实践
  • REFramework终极指南:RE引擎游戏的完整修改框架与VR支持方案
  • 端午图文投票评选活动搭建教程 - 投票评选活动
  • Python mock与单元测试隔离
  • 2026年6月自贡卖黄金防坑指南 正规回收价格明细参考 - 余生黄金回收
  • 三分钟实战手册:如何让旧款iOS设备重获新生?
  • QwenPaw:轻量级本地大模型智能代理层
  • PostgreSQL数据库创建删除与切换的底层原理与实操指南
  • Hermes Agent:开源可进化的AI工作伙伴操作系统
  • 聚焦F4星环保与人性化设计 松盛优住为长三角家庭提供专业适老化装修方案 - 博客万
  • 3分钟搞定Figma中文界面!设计师必备的界面汉化神器
  • Gemini CLI:面向开发者的上下文感知工程代理
  • 2026年6月16日海安车灯维修本地走访记:灯罩老化程度和处理方式先核对哪几项 - Ayu8888
  • 2026年中山企业老板力荐专利申请与无效律师 5位实战精选 - 本地品牌推荐
  • 一文讲清,MES系统是什么意思?全面解析MES系统的核心功能
  • 2026:郫都专业除甲醛公司深度测评,甲醛检测治理怎么选?多项实测对比推荐成都肃醛环保科技有限公司 - 专注室内空气检测治理