插入带有聚簇索引的表

时间:2012-07-22 15:00:56

标签: sql database indexing clustered-index

如果我没有弄错,聚集索引会根据某些自定义顺序在磁盘上物理排序表中的行。我假设表存储在文件中(每个表可能有一个文件?)。好吧,但是,假设有人在表中插入一个“新行”,并且应该放在开头。然后数据库需要在文件中物理移动整个表(所有行)?是不是太慢或有没有任何优化技术如何在插入后实现排序顺序?

1 个答案:

答案 0 :(得分:4)

表格不一定存储为文件。从逻辑上讲,它们存储在页面中。假设每个页面有100行,并且在需要时可以容纳额外的20行。然后将所有页面链接在一起以生成整个表格数据。

在您的情况下,当您在开头添加新行时,您只需更改第一页,只需移动100行。如果你反复这样做,当该页面的行数超过120时,页面将分成两个链接在一起的新页面。