聚集索引及非聚集索引的理解

说到底,有用的其实只有一种索引,那就是聚集索引。这两种索引都是以B-树的形式存储。

但是聚集索引的叶子节点存储的是对数据库页(数据库保存数据最小单元)的引用。

非聚集索引通常情况下保存的是对聚集索引的引用。所以查找非聚集索引其实也是对聚集索引的查找。

由于聚集索引的底层数据结构是B-树,那么当给某一列添加聚集索引之后,数据的物理保存顺序就会按照该列的逻辑顺序排序存储。因为B-树类似于二分查找树。

如果没有聚集索引,数据库页按照堆存储,建立了聚集索引,数据按B-查找树的形式存储,性能可想而知。

所以建立聚集索引的列通常是唯一的且易于排序的列。自增长列就是一个不错的选择,因为自增长列可以有效避免insert操作带来的索引碎片。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容