非聚集索引与聚集索引

时间:2019-12-28 08:00:06

标签: mysql sql database

我想我不明白为什么聚簇索引比非聚簇索引快的原因,将原始记录存储在索引中与让指针引用那些记录有什么好处?

1 个答案:

答案 0 :(得分:1)

在聚集索引中,数据将与索引键一起存储在索引中。在非聚集索引中,数据将存储在堆文件中,并且将从每个索引键指向堆文件的指针。

聚集索引的读取速度更快,因为无需将指针指向堆文件,因为数据与键一起存储在索引中。

聚簇索引的另一个好处是范围查询将很快,因为数据将通过键进行物理排序。

聚集索引也可以更快地进行更新,因为使用具有更大内存大小的新值更新堆文件中的值时,需要将该值移到堆中的其他位置。然后,所有指向旧位置的索引都必须更新,或者需要在旧堆位置中保留转发指针。