聚簇索引与非聚簇索引的区别?

聚簇索引与非聚簇索引的区别?
首先理解聚簇索引不是一种新的索引,而是而是一种数据存储方式。聚簇表示数据行和相邻的键值紧凑地存储在一起。我们熟悉的两种存储引擎——MyISAM 采用的是非聚簇索引,InnoDB 采用的是聚簇索引。
可以这么说:
- 索引的数据结构是树,而聚簇索引和非聚簇索引的数据存储方式有所不同。聚簇索引将索引和实际数据紧密地存储在一起,形成一棵树结构,而非聚簇索引将索引和实际数据分开存储在不同的树结构中。
- 在一个表中,只能存在一个聚簇索引,但可以存在多个非聚簇索引。
- 聚簇索引的键值的逻辑顺序决定了表中相应行的物理存储顺序,而非聚簇索引的逻辑顺序与磁盘上行的物理存储顺序不一定相同。
- 聚簇索引的物理存储按照索引的顺序排列,而非聚簇索引的物理存储并不按照索引的顺序排列。