36 【面试官:聚簇索引和非聚簇索引有什么区别? - 后端研发工程师哈哈 | 小红书 - 你的生活指南】 😆 GxFONs1jp4OijvZ 😆 http://xhslink.com/u9tA6S
首先理解聚簇索引不是一种新的索引,而是一种数据存储方式。聚簇索引表示数据行和相邻的键值紧凑地存储在一起。我们熟悉的两种存储引擎 ——— MyISAM 采用的是非聚簇索引,InnoDB 采用的是聚簇索引。
可以这么说:
索引的数据结构是树,聚簇索引的索引和数据存储在一颗树上,树的叶子节点就是数据,非聚簇索引和数据不在一颗树上。
一个表中只能拥有一个聚簇索引,而非聚簇索引一个表可以存在多个。
聚簇索引,索引中键值的逻辑顺序决定了表中相应行的物理顺序;非聚簇索引,索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。
聚簇索引:物理存储按照索引排序;非聚簇索引:物理存储不按照索引排序;