集群索引如何存储在硬盘上?什么是逻辑顺序?
非聚簇索引如何工作?
解决方法
这意味着根据CLUSTERED PRIMARY KEY(或聚类列)的顺序将表中的数据存储在B-Tree中.
这个名字在我看来有点混乱. Oracle中相同的概念称为索引组织表,我发现更多的描述性.
非聚集索引包含索引列的值以及指向它们所创建的记录的指针.
“聚集索引”是表本身; “非聚集”索引是某些表的列的有序副本.
如果您“创建”聚簇索引,则表重新排列.这就是为什么你不能在表上有多个“聚集索引”:表不能按照多个顺序排列.
如果创建辅助索引,则创建表的卷影副本,保留索引列的值以及指向它们的记录的指针.每当表改变时,副本也被更改(引擎自动处理).
非集群表
id col1 value -- -- -- 1 1 Data 1 6 1 Data 6 3 1 Data 3 7 2 Data 7 9 2 Data 9 5 2 Data 5
表没有订购.
集群表
id col1 value -- -- -- 1 1 Data 1 3 1 Data 3 5 2 Data 5 6 1 Data 6 7 2 Data 7 9 2 Data 9
该表是按照id排序的.
具有辅助索引的聚集表
Table Index id col1 value col1 id -- -- -- -- -- 1 1 Data 1 1 1 3 1 Data 3 1 3 5 2 Data 5 1 6 6 1 Data 6 2 5 7 2 Data 7 2 7 9 2 Data 9 2 9
该表是在id上的orderer,索引是按顺序(col1,id)