1

我很惊讶地知道 SQL Server(我测试了 2008 R2 版本,但这似乎也适用于早期版本)允许将数据插入到没有定义主键(因此是聚集索引)的表中。

这怎么可能以及如何为这些表物理存储数据?

4

1 回答 1

3

有用的链接在这里:

http://www.sqlmag.com/blog/sql-server-questions-answered-28/sql-server/what-happens-if-i-drop-a-clustered-index-137109

问:我听说聚簇索引是“数据”,但我不完全明白这是什么意思。如果我删除聚集索引,我会丢失数据吗?

A:我经常被问到这个问题,我发现索引结构容易让人迷惑;索引看起来很神秘,因此无意中被认为非常复杂。一个表可以在内部存储有或没有聚集索引。如果表没有聚集索引,则称为堆。如果表有聚集索引,它通常被称为聚集表。创建聚集索引时,SQL Server 会临时将堆中的数据复制并排序为聚集索引键顺序(因为键定义了数据的顺序),并删除与堆关联的原始页面。从现在开始,SQL Server 将通过双向链表和用于导航到数据中特定点的 B+ 树来保持逻辑顺序。

于 2012-09-18T11:35:40.850 回答