聚集索引和非聚集索引的区别是什么

 

聚集索引   

 

在创建聚集索引时,将会对表进行复制,对表中的数据进行排序,然后删除原始的表。因此,数据库上必须有足够的空闲空间,以容纳数据复本。默认情况下,表中的数据在创建索引时排序。但是,如果因聚集索引已经存在,且正在使用同一名称和列重新创建,而数据已经排序,则会重建索引,而不是从头创建该索引,以自动跳过排序操作。重建操作会检查行是否在生成索引时进行了排序。如果有任何行排序不正确,即会取消操作,不创建索引。   


 

非聚集索引  

 
非聚集索引与课本中的索引类似。数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。索引中的项目按索引键值的顺序存储,而表中的信息按另一种顺序存储(这可以由聚集索引规定)。如果在表中未创建聚集索引,则无法保证这些行具有任何特定的顺序。

 

优势与缺点

 

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

 

 

通俗的说法:

 

聚集索引:相当于字典的正文,按照字母A到Z,固定排序,如果要查询赵(Zhao),自然的排在字典后面。字典正文本身就是目录,不需要在去查询其他目录。(只查询设置聚集索引的字段,而不是全行查询)。

 

每个表只有一个聚集索引,因为目录只能按一种方法进行排序。

 

非聚集索引:相当于偏旁部首,先找到部首,在根据这个字的页码去找到这个字。和内容排序查询的区别是需要两步才能找到所需的字。

 

 

创建索引的方法:


         1)企业管理器中
               (1)右击某个表,所有任务---管理索引,打开管理索引,单击“新建”就可以创建索引
               (2)在设计表中进行设计表,管理索引/键
               (3)在关系图中,添加表后右击关系图中的某个表,就有“索引/键”
               (4)通过向导,数据库---创建索引向导
               (5)通过T-SQL语句
         2)能过“索引优化向导”来优化索引的向导,通过它可以决定选择哪些列做为索引列

 

下面的表总结了何时使用聚集索引或非聚集索引:

 

动作描述使用聚集索引使用非聚集索引
列经常被分组排序
返回某范围内的数据不应
一个或极少不同值不应不应
小数目的不同值不应
大数目的不同值不应
频繁更新的列不应
外键列
主键列
频繁修改索引列不应

 

 

参考资料: 聚集索引和非聚集索引的区别有哪些     http://www.studyofnet.com/news/59.html

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值