SQL Server 的聚簇索引与非聚簇索引
聚集索引:表中存储的数据按照索引的顺序存储,检索效率比普通索引高,但对数据新增/修改/删除的影响比较大。
非聚集索引:不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很小。
一张表只有一个聚簇索引,可有多个非聚簇索引。
下表描述聚簇索引与非聚簇索引的适用范围:
动作描述 使用聚集索引 使用非聚集索引
列经常被分组排序 应 应
返回某范围内的数据 应 不应
返回精确匹配的数据 不应 应
一个或极少不同值 不应 不应
小数目的不同值 应 不应
大数目的不同值 不应 应
频繁更新的列 不应 应
外键列 应 应
主键列 应 应
注:主键列如果是采用标识且经常用于范围查询,则适用聚簇索引,否则适用非聚簇索引。
CREATE nonclustered INDEX pro_basic_index ON 表明(列明) 非聚集索引
CREATE clustered INDEX pro_basic_index ON 表明(列明) 聚集索引