繁体   English   中英

集群/非集群用于非复合键

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM