群集索引和创建它的表都包含实际数据吗?

时间:2015-02-13 12:37:20

标签: sql-server indexing

聚簇索引根据键值对表或视图中的数据行进行排序和存储。

https://msdn.microsoft.com/en-IN/library/ms190457.aspx

这意味着如果表具有聚簇索引,那么该表的行将以与聚簇索引相同的顺序存储在磁盘上。

其次,聚集索引的叶节点包含创建它的表的数据页。

https://technet.microsoft.com/en-us/library/ms177443%28v=sql.105%29.aspx

所以,我的问题是,相同的数据存储在Clustered Index和创建它的表中?

如果是,那么需要以与聚集索引相同的顺序对表进行排序是什么?因为聚簇索引本身将行级数据存储在它的叶节点中。

如果不是,那么聚集指数的创建背后的实际理论是什么?

2 个答案:

答案 0 :(得分:5)

数据存储在存储在聚集索引的叶级中 - IS 表数据!

未将存储在聚集索引中 - 聚集索引的叶级 IS 表数据。

答案 1 :(得分:2)

我在这里得到了答案: https://www.youtube.com/watch?v=lYsVOB_A5o4

https://www.simple-talk.com/sql/performance/14-sql-server-indexing-questions-you-were-too-shy-to-ask/

聚簇索引不是表中的单独索引,而是表。 聚簇索引不是与其他索引类型一样的单独实体,而是一种用于对表进行排序并促进快速数据访问的机制。

因此,我们可以说数据存储在聚簇索引中,或者数据存储在表中。两者都是一样的。