我很惊讶地知道 SQL Server(我测试了 2008 R2 版本,但这似乎也适用于早期版本)允许将数据插入到没有定义主键(因此是聚集索引)的表中。
这怎么可能以及如何为这些表物理存储数据?
我很惊讶地知道 SQL Server(我测试了 2008 R2 版本,但这似乎也适用于早期版本)允许将数据插入到没有定义主键(因此是聚集索引)的表中。
这怎么可能以及如何为这些表物理存储数据?
有用的链接在这里:
问:我听说聚簇索引是“数据”,但我不完全明白这是什么意思。如果我删除聚集索引,我会丢失数据吗?
A:我经常被问到这个问题,我发现索引结构容易让人迷惑;索引看起来很神秘,因此无意中被认为非常复杂。一个表可以在内部存储有或没有聚集索引。如果表没有聚集索引,则称为堆。如果表有聚集索引,它通常被称为聚集表。创建聚集索引时,SQL Server 会临时将堆中的数据复制并排序为聚集索引键顺序(因为键定义了数据的顺序),并删除与堆关联的原始页面。从现在开始,SQL Server 将通过双向链表和用于导航到数据中特定点的 B+ 树来保持逻辑顺序。