首页 理论教育SQLServer数据库技术:主键约束创建唯一聚集索引

SQLServer数据库技术:主键约束创建唯一聚集索引

【摘要】:在创建主键约束时,如果指定Clustered关键字,则将为表产生唯一聚集索引。

1.索引的基本概念

在关系数据库中,索引是一种单独地、物理地对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,读者可以根据目录中的页码快速找到所需的内容。

2.索引的类型

SQL Sever 2019提供了常用3种索引。

(1)唯一索引(Unique):唯一索引是不允许其中任何两行具有相同索引值的索引。

(2)聚集索引(Clustered Index):也称为聚簇索引,在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引,即如果存在聚集索引,就不能再指定Clustered关键字。

(3)非聚集索引(Nonclustered Index):也叫非簇索引,在非聚集索引中,数据库表中记录的物理顺序与索引顺序可以不相同。一个表中只能有一个聚集索引,但表中的每一列都可以有自己的非聚集索引。如果在表中创建了主键约束,SQL Server 2019将自动为其产生唯一性约束。在创建主键约束时,如果指定Clustered关键字,则将为表产生唯一聚集索引。

3.创建索引原则

创建索引可以加快数据的检索速度、加速表与表之间的连接等,但过多地创建索引会占据磁盘空间,降低数据的维护速度,所以在创建索引时,必须权衡利弊。

一般在下列情况下适合创建索引:(www.chuimin.cn)

(1)经常被查询搜索的列,如经常出现在WHERE子句的逻辑表达式中的列;

(2)在ODER BY子句中使用的列;

(3)外键或主键列;

(4)值唯一的列。

在下列情况下不适合创建索引:

(1)在查询中很少被引用的列;

(2)包含太多重复值的列;

(3)数据类型为bit、text、image等的列不能创建索引。