我刚学习SQL Server中的索引,但在Clustered和Unique索引之间混淆了。如果两者都应用于唯一键列ex:PersonID。那么两者之间有什么区别。
感谢名单。
答案 0 :(得分:36)
两者无关:
您可以拥有所有4种排列:
由于SQL Server中“主键”(PK)的默认值已群集,因此会出现一些混淆。
“主键”必须始终是唯一的。 “unique”和“PK”之间的区别在于unique允许一个NULL,PK不允许任何NULL。
最后,一些数字限制
答案 1 :(得分:16)
唯一索引只是一个具有唯一约束的索引,仅此而已。聚簇索引在磁盘上对数据进行排序以匹配索引。如果您经常只通过一列访问表中的数据,这将非常有用,例如:通过主键。此外,表只能有一个聚簇索引(当然很明显)。
答案 2 :(得分:9)
一种粗略的思考方式是想到一本电话簿。聚集索引是页面写入的顺序。任何其他索引都是单独的列表,显示要去的页面。
例如,电话簿在姓氏上“聚集”,但您可能还想通过街道查找,因此您将有一个单独的列表,表示居住在假街上的人员位于第3,45和63页等
答案 3 :(得分:1)
AFAIK每个表通常只有一个聚簇索引,它通常是主键,但它可能有任何唯一索引。