1. 首页 > 笙耀百科 >

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

今天小蚪来给大家分享一些关于什么是聚簇索引和非聚簇索引方面的知识吧,希望大家会喜欢哦

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


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

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

3、建议使用聚集索引的场合为:a.此列包含有限数目的不同值;b.查询的结果返回一个区间的值;c.查询的结果返回某值相同的大量结果集。

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

5、非聚集索引比聚集索引层次多,添加记录不会引起数据顺序的重组。

6、建议使用非聚集索引的场合为:a.此列包含了大量数目不同的值;b.查询的结束返回的是少量的结果集;c.order by 子句中使用了该列。

7、--不用索引查询Select * FROM IndexTestTable WHIT(INDEX(0))Where Status='B'--创建聚集索引Create CLUSTERED INDEX icIndexTestTableON IndexTestTable(Status)GO--使用索引查询Select * FROM IndexTestTable WITH(INDEX(icIndexTestTable))Where Status='B'表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。

8、这样的一列或多列称为表的主键.(默认为聚集索引)聚集索引确定表中数据的物理顺序。

9、聚集索引类似于电话簿,后者按姓氏排列数据。

10、由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。

11、但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。

12、非聚集索引与课本中的索引类似。

13、数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。

14、索引中的项目按索引键值的顺序存储,而表中的信息按另一种顺序存储(这可以由聚集索引规定)。

15、如果在表中未创建聚集索引,则无法保证这些行具有任何特定的顺序。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息