技术开发 频道

数据库索引一次性搞定

  2.2 索引的存储结构

  2.1.1 整表扫描和索引扫描

  整表扫描和索引扫描是Sql Server数据库检索到数据的唯一的两种方式。除此之外,没有第三种方式供Sql Server检索到数据。

  整表扫描

  最直接的检索方式, Sql Server进行表扫描时,会从表头开始扫描,直到整个表结束。 当找到符合条件的记录,便把该记录存在结果集中。对于小数据量的表,这是一种很快捷的方式。如果没有为表创建索引,那么Sql server便按这种方式检索数据。

  索引扫描

  如果为表创建了索引,在进行检索前,Sql Server优化器会根据查询条件,从可用的索引中选择最优化的索引。检索时,便会遍历B树,当找到符合条件的记录,便把该记录存在结果集中。因此,检索大数据量的表,使用索引相对于整表扫描会显著地提高性能。

  2.1.2 B-Tree

1
 

  2.2.3 聚集索引

1
 

  叶子节点存放的是实际的数据。索引的入口点存放在master->sys.indexes中。

  2.2.4 非聚集索引

  2.4.1 堆上的非聚集索引(Non-clustered index on heap)

1
 

  与聚集索引很类似。

  不同处在:

  叶子节点存放的不是实际数据,而是指向实际数据的指针。检索速度非常接近于聚集索引,比起聚集索引,实际上只是多一步由根据指针检索到实际数据的过程。  

0
相关文章