我了解什么是主键和唯一聚集索引,我的问题是在定义唯一聚集索引时为什么需要主键。只考虑性能良好的数据库设计。
根据我的理解,当我们定义聚集唯一索引时,它会对数据进行物理排序,这对表的性能至关重要,无论我们是否定义主键都没有影响。
根据我的理解,当我们定义聚集唯一索引时,它会对数据进行物理排序,这对表的性能至关重要,无论我们是否定义主键都没有影响。
对于SQL Server而言,在非空列上创建唯一索引和创建主键没有实际区别。
两者都强制唯一性,可以聚集或非聚集,并且可以被外键约束引用。
但某些工具可能期望有一个定义为主键的索引。
关于你提到的聚集索引“物理排序数据”的观点,这是一个误解。
只有当聚集索引没有碎片时才是真的。例如,在分页之后,聚集索引页在文件中可能是无序的。