我刚开始学习SQL Server中的索引,但是对于聚集索引和唯一索引感到困惑。如果两者都应用于具有唯一键列(例如:PersonID)的列,那么它们之间有什么区别呢?
谢谢。
谢谢。
两者没有关联:
有四种排列组合:
有些人会因为 SQL Server 中 "primary key"(PK)的默认设置是聚集,而感到困惑。
"Primary key" 必须始终是唯一的。 "unique" 和 "PK" 之间的差异在于唯一允许一个 NULL,而 PK 不允许任何 NULL。
最后,一些数字限制:
一个唯一索引只是一个具有唯一约束的索引,没有更多,也没有更少。聚集索引将数据在磁盘上物理排序以匹配索引。如果您仅通过一个列(例如主键)经常访问表中的数据,则它非常有用。此外,一张表只能有一个聚集索引(当然是显而易见的)。
一个粗略的思路是将其比作电话簿。聚集索引是页面书写顺序。任何其他索引都是单独的列表,显示要转到哪个页面。
例如,电话簿按姓氏“聚集”,但您可能还想通过街道查找,因此您会有一个单独的列表,显示住在假街上的人在第3页、第45页和第63页等。