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

首先理解聚簇索引不是一种新的索引,而是而是一种数据存储方式。聚簇表示数据行和相邻的键值紧凑地存储在一起。我们熟悉的两种存储引擎——MyISAM 采用的是非聚簇索引,InnoDB 采用的是聚簇索引。

可以这么说:

  • 索引的数据结构是树,而聚簇索引和非聚簇索引的数据存储方式有所不同。聚簇索引将索引和实际数据紧密地存储在一起,形成一棵树结构,而非聚簇索引将索引和实际数据分开存储在不同的树结构中。
  • 在一个表中,只能存在一个聚簇索引,但可以存在多个非聚簇索引。
  • 聚簇索引的键值的逻辑顺序决定了表中相应行的物理存储顺序,而非聚簇索引的逻辑顺序与磁盘上行的物理存储顺序不一定相同。
  • 聚簇索引的物理存储按照索引的顺序排列,而非聚簇索引的物理存储并不按照索引的顺序排列。

标签: java, Java面试题, MySQL, Java问题合集, MySQL面试题, Java编程, Java问题精选, Java常见问题