聚集索引和非聚集索引
在索引中又分为聚集索引和非聚集索引两种索引模式。
1)聚集索引
表中存储的数据按照索引的顺序存储,检索效率比普通索引高,索引占用硬盘存储空间小(1%左右),但对数据新增/修改/删除的速度影响比较大(降低)。
如下。
● 无索引,数据无序。
● 有索引,数据与索引同序。
● 数据会根据索引键的顺序重新排列数据。
● 一个表只能有一个索引。
● 叶节点的指针指向的数据也在同一位置存储。
TSQL语法:create CLUSTERED INDEX idxempID ON emp(empID)
2)非聚集索引
不影响表中的数据存储顺序,检索效率比聚集索引低,索引占用硬盘存储空间大(30%~40%),对数据新增/修改/删除的影响很少。特点如下。
● 一个表可以最多可以创建249个非聚集索引。
● 先建聚集索引才能创建非聚集索引。
● 非聚集索引数据与索引不同序。
● 数据与非聚集索引在不同位置。
● 非聚集索引在叶节点上存储,在叶节点上有一个“指针”直接指向要查询的数据区域。
● 数据不会根据非聚集索引键的顺序重新排列数据。
TSQL语法:create NONCLUSTERED INDEX idximpID ON emp(empID)