聚簇索引非聚簇索引有什么区别?

聚簇索引

聚簇索引的叶子节点存储了完整的数据行,数据和索引是在一起的。
InnoDB的主键索引就是聚簇索引,叶子节点不仅存储了主键值,还存储了其他列的值。因此按照主键进行查询的速度会非常快。

每个表只能有一个聚簇索引,通常由主键定义。如果没有显式指定主键,InnoDB会隐式创建一个隐藏的主键索引row_id

非聚簇索引

非聚簇索引的叶子节点只包含了主键值,
需要通过回表按照主键去聚簇索引查找其他列的值,唯一索引、普通索引等非主键索引都是非聚簇索引。

每个表都可以创建多个非聚簇索引,如果不想回表的话,可以通过覆盖索引把要查询的字段也放到索引中。

posted @ 2025-05-27 16:00  kuki'  阅读(25)  评论(0)    收藏  举报