2011-03-29 36 views

回答

1

大多数SQL数据库实现以堆的形式构造没有索引的数据库表—相关页面的无序集合,每个页面都包含一定数量的行。

非聚集索引是B树,其叶节点包含指向包含该键值的数据页面的指针。通过非聚集索引获取非键值需要额外的查找来检索有问题的数据页面。

聚类索引与非聚类索引一样,都是B树,其中一个重要区别是:堆会消失。聚簇索引的叶节点为表的数据页面:因此给予该表的物理顺序。同样,每个页面上的行按键顺序保存。通过聚集索引获取非键值不需要额外查找所需的开销来获取有问题的数据页面。

0

聚簇索引表的精确副本,按索引的字段排序。

0

MSDN

聚集索引确定表中的数据的物理 顺序。 A 聚集索引类似于 电话号码簿,它按姓氏排列数据 。由于 聚簇索引规定了 表中数据的物理 存储顺序,因此一个表只能包含一个聚簇索引 。但是,索引 可以包含多个列( 组合索引),例如 电话号码簿由 姓氏和名字组织。

所以,是的,一个聚集索引一个关键点是物理数据存储在索引的顺序。

2

这就是他们所做的。

聚簇索引是表中的所有数据,按照聚簇键的物理顺序存储,并具有支持的b-tree结构以便快速导航。

1

扩展其他的答案...

  • 的数据是索引键的顺序。非键列没有为了
  • 顺序逻辑:在中间插入新行,你可能会得到一个页面拆分和一些指针
  • 物理顺序会存在后,创建或重建(如有分区等)
  • 输出订单将只有只有由ORDER BY