主题切换
聚簇索引与非聚簇索引与回表查询
一、核心概念定义
1. 聚簇索引(Clustered Index)
- 定义:将数据存储与索引结构放在一起,B+树的叶子节点直接保存完整的行数据。
- 特点:每个表必须有且只有一个聚簇索引,数据行的物理存储顺序与索引顺序完全一致。
2. 非聚簇索引(二级索引/辅助索引)
- 定义:数据与索引分开存储,B+树的叶子节点仅保存对应的主键值,而非完整数据。
- 特点:一个表可以存在多个非聚簇索引,索引结构与数据存储相互独立。
3. 回表查询
- 定义:通过二级索引找到对应的主键值后,再根据主键值到聚簇索引中查找完整行数据的过程。
- 场景:当查询的字段无法完全通过二级索引获取时,就会触发回表查询,例如:sql
SELECT * FROM user WHERE name = 'Arm';