在表中包含非复合键时,将它设置为聚簇键还是非聚簇键是否有意义?例如,假设下表:
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)
,那将是有益的。
但是,我不确定我所代表的非复合键是否也可以从非群集中受益,以节省数据库性能(节省排序等麻烦,因为顺序键本身就是有序的)
答案 0 :(得分:0)
表上只能有一个聚簇索引,因此所有其他索引最多都是非聚簇索引,但从不聚集。有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms190457.aspx。