聚集索引和非聚集索引

聚集索引和非聚集索引

一)聚集索引和非聚集索引

聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致,

 

聚集索引表记录的排列顺序与索引的排列顺序一致,优点是查询速度快,因为一旦具有第一个索引值的纪录被找到,具有连续索引值的记录也一定物理的紧跟其后。

聚集索引的缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。

  非聚集索引指定了表中记录的逻辑顺序,但记录的物理顺序和索引的顺序不一致,聚集索引和非聚集索引都采用了B+树的结构,但非聚集索引的叶子层并不与实际的数据页相重叠,而采用叶子层包含一个指向表中的记录在数据页中的指针的方式。非聚集索引比聚集索引层次多,添加记录不会引起数据顺序的重组。

 

--不用索引查询

Select * FROM IndexTestTable WHIT(INDEX(0))

Where Status='B'

 

--创建聚集索引

Create CLUSTERED INDEX icIndexTestTable

ON IndexTestTable(Status)

GO

 

--使用索引查询

Select * FROM IndexTestTable WITH(INDEX(icIndexTestTable))

Where Status='B'

 

建了索引块后 查找的时候首先查找索引块 在查找索引块中的内容

聚集索引的区别

  聚集索引:物理存储按照索引排序

  非聚集索引:物理存储不按照索引排序

 

优势与缺点

 

聚集索引:插入数据时速度要慢(时间花费在物理存储的排序上,也就是首先要找到位置然后插入),查询数据比非聚集数据的速度快

 

在前面的讨论中我们已经提到了,聚集索引有两个最大的优势:ITPUB个人空间u#N X
以最快的速度缩小查询范围。

以最快的速度进行字段排序。ITPUB个人空间3RF&yg:Rv
1条多用在查询优化时,而第2条多用在进行分页时的数据排序。

聚集索引在每个表内又只能建立一个,这使得聚集索引显得更加的重要。聚集索引的挑选可以说是实现查询优化高效分页的最关键因素。      但要既使聚集索引列既符合查询列的需要,又符合排序列的需要,这通常是一个矛盾。
聚集索引是如此的重要和珍贵,所以一定要将聚集索引建立在:
您最频繁使用的、用以缩小查询范围的字段上;
您最频繁使用的、需要排序的字段上。

 

 

二)何时使用聚集索引或非聚集索引

下面的表总结了何时使用聚集索引非聚集索引很重要)。

动作描述

使用聚集索引

使用非聚集索引

列经常被分组排序

返回某范围内的数据

不应

一个或极少不同值

不应

不应

小数目的不同值

不应

大数目的不同值

不应

频繁更新的列

不应

外键列

主键列

频繁修改索引列

不应

 转自http://blog.sina.com.cn/s/blog_50072fd50100g8t6.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值