跳转至

聚簇索引和非聚簇索引

一、聚簇索引

叶子节点存整行数据。

  • InnoDB 主键索引就是聚簇索引。
  • 一张表只有一个。

二、非聚簇索引

叶子节点存主键值。

  • 普通索引(二级索引)。
  • 有多个。

三、区别

聚簇 非聚簇
叶子存 整行 主键
数量 1 个 多个
查询 要回表

四、为什么 InnoDB 按主键组织

  • 数据和索引放一起。
  • 按主键查快。

五、MyISAM

MyISAM 没有聚簇索引,数据和索引分开存。

六、二级索引

二级索引叶子存主键,查数据要回表。

一句话

聚簇索引叶子存数据,非聚簇叶子存主键。