如果我没有弄错聚簇索引根据一些自定义顺序在磁盘上物理排序表的行。我假设表格存储在文件中(也许每个表格有一个文件?)。那么不过,假设有人在表格中插入一个“新行”,并且应该放置在开始处。数据库然后需要在文件中物理地移动整个表格(所有行)?是不是太慢或有没有任何优化技术如何在插入后实现排序顺序?插入聚簇索引表
插入聚簇索引表
回答
表格不一定存储为文件。从逻辑上讲,它们存储在页面中。假设每个页面有100行,并且在需要时可以保存额外的20行。然后将所有页面链接在一起以制作整个表格数据。
就你而言,当你在开始时添加一个新行时,只需更改第一页,只需移动100行。如果您一遍又一遍地执行该操作,那么当该页面的行数超过120时,该页面将被拆分为两个链接在一起的新页面。
是啊,你是对的,我的错误。 – 2012-07-22 15:17:26
我只想补充一下。 。 。 “表格不一定存储为文件”。数据库可以存储不管他们喜欢的表,并且一些支持SQL的数据库可能会选择将表放入文件中。大多数不这样做,但这是编写引擎的人的设计决定。 – 2012-07-22 16:13:02
好点。当然,任何数据库都可以将表格保存到文件。我对这个问题给出了一个总体的看法。但在大多数情况下以及大多数DBMS(如Oracle,DB2或SQL服务器)中,它都是这样的:行 - >页 - >表 - >文件或磁盘。根据你的观点,我会编辑我的回复。 – 2012-07-22 19:14:11
- 1. 聚簇索引和非聚簇索引
- 2. 聚簇索引
- 3. 具有非聚簇索引但没有聚簇索引
- 4. 非主键列上的聚簇索引或非聚簇索引?
- 5. 改变聚簇索引列
- 6. SQL Server非聚簇索引
- 7. 了解聚簇索引
- 8. 全文索引vs %%和聚簇索引
- 9. SQL空间索引和聚簇索引
- 10. 带聚簇索引的文件表
- 11. 聚簇索引或分区表?
- 12. 应将主键聚簇索引列添加到非聚簇索引中?
- 13. SQL Server性能:非聚簇索引+ INCLUDE列与聚簇索引 - 等效吗?
- 14. 尽管有聚簇索引,SQL Server仍在使用非聚簇索引
- 15. 如何执行非聚簇索引查找而不是聚簇索引扫描
- 16. 混淆了聚簇索引和非聚簇索引。包含5个疑问
- 17. 聚簇索引扫描而不是聚簇索引寻求左连接
- 18. 保存B +树的聚簇索引和非聚簇索引的位置?
- 19. 如何用非聚集索引查找或聚簇索引查找替换聚簇索引扫描?
- 20. SQL Server“一次写入”表聚簇索引
- 21. 插入排序的数据到一个表与非聚簇索引
- 22. 将已排序的数据插入到具有聚簇索引的表中
- 23. 在nhibernate中设置聚簇索引
- 24. 聚簇索引内部结构
- 25. SQL服务器行不聚簇索引
- 26. SqlServer聚簇索引存储(> 1列)?
- 27. Sybase非聚簇索引选择
- 28. 更改sybase中的非聚簇索引
- 29. Azure无法识别聚簇索引
- 30. 并行SQL Server聚簇索引创建
什么RDBMS? SQL Server? – 2012-07-22 15:08:26
如果您正在谈论** SQL Server ** - 那么数据将以8K页的形式保存在一个平衡的b-tree结构中。在表格中插入新行的位置几乎是不相关的 - 可能或可能不需要执行某些步骤,但它肯定是**而不是“顺序”文件类结构,需要转移到当插入一个新行时......回到 – 2012-07-22 15:59:19