例如,我有一个表,其中包含两个我想在数据库中唯一的字段。例如:
create table Subscriber (
ID int not null,
DataSetId int not null,
Email nvarchar(100) not null,
...
)
ID 列是主键,DataSetId 和 Email 都被索引。
我想要做的是防止相同的电子邮件和 DataSetId 组合出现在表中,或者换句话说,电子邮件值对于给定的 DataSetId 必须是唯一的。
我尝试在列上创建唯一索引
CREATE UNIQUE NONCLUSTERED INDEX IX_Subscriber_Email
ON Subscriber (DataSetId, Email)
但我发现这对搜索时间有相当大的影响(例如,在搜索电子邮件地址时 - 表中有 150 万行)。
有没有更有效的方法来实现这种类型的约束?