[英]Clustered / Non-clustered for non-composite keys
当表中有非复合键时,将其设置为集群键还是非集群键有意义吗? 例如,假设下表:
CREATE TABLE [dbo].[Logins]
(
[Customer_Id] UNIQUEIDENTIFIER ROWGUIDCOL PRIMARY KEY REFERENCES Customers(Customer_Id) ON DELETE CASCADE,
[Email] NVARCHAR(50) NOT NULL UNIQUE NONCLUSTERED,
[Password] NVARCHAR(64) NOT NULL
)
由于Customer_Id
使用了顺序唯一标识符,因此没有理由将其他任何键都设置为集群键。 但是从我的角度来看,如果另一个键是复合键(例如CONSTRAINT [Table_UK] UNIQUE NONCLUSTERED (Email, OrderId)
则这将是有益的。
但是,我不确定我所代表的非复合键是否也可以从非聚类中受益,以节省数据库性能(省去了排序等麻烦,因为顺序键是固有排序的)
一个表上只能有一个聚集索引,因此所有其他索引通常都是非聚集索引,而从不聚集。 有关更多信息,请参见https://msdn.microsoft.com/zh-cn/library/ms190457.aspx 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.