聚集索引和非聚集索引区别

来源:互联网 发布:手机怎么申请淘宝开店 编辑:程序博客网 时间:2024/05/18 01:57

一、概念:

     1、聚集索引一个表只能有一个,非聚集索引一个表可以存在多个

           聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索                引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。

           对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。

           避免每次查询该列时都进行排序,从而节省成本。

             create NONCLUSTERED INDEX idximpID ON EMP(empID)

     2、聚集索引存储记录是物理上连续存在,非狙击索引是逻辑上连续,物理存储并不连续

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

            create CLUSTERED INDEX idxempID on emp(empID)

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

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

  

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



  

0 0