SQL 索引

为了提高查询查询效率,我们通常习惯对表建索引,索引分为聚集索引和非聚集索引,它们都是一种B树型的存储结构。

如果一个表没有聚集索引,那么它是以堆的方式存储,也就是表中的数据没什么顺序的。否则假如我们为表创建了聚集索引,那么其存储是有顺序的。

其实有创建了聚集索引的表,数据表本身也是索引,只是作为叶子节点存在。

创建非聚集索引不会影响表的存储方式,换句话说,表还是以堆的方式存储。创建非聚集索引的时候,多个书签列,这个书签列的值,是由表是否有聚集索引决定的。

如果表中有聚集索引,那么书签值是聚集索引的键值,当按索引查找的时候,会先找到该索引行,然后再通过该索引行存储的键值去查找表中的数据。

如果表中没有聚集索引,那么书签值是RID值,也是是存储的是(文件:页:行),通过定位就能找到该行数据,该值是一个物理地址,不是键值了。

原文地址:https://www.cnblogs.com/fuyun2000/p/3634707.html