我有下表
CREATE TABLE DiaryEntries
(
[userId] [uniqueidentifier] NOT NULL,
[setOn] [datetime] NOT NULL, -- always set to GETDATE().
[entry] [nvarchar](255) NULL
)
Run Code Online (Sandbox Code Playgroud)
每个用户每天将插入大约 3 个条目。将有大约 1'000'000 名用户。这意味着该表中每天有 3'000'000 条新记录。一旦记录超过 1 个月,我们就会将其删除。
大多数查询都有以下 WHERE 子句:
WHERE userId = @userId AND setOn > @setOn
Run Code Online (Sandbox Code Playgroud)
大多数查询返回不超过 3 行,除了一个返回本月内插入的所有行(最多 90 行)。
插入记录后,日期和用户 ID 不能更改。
现在我的问题是 - 如何最好地安排这张表的索引?我坚持两种选择: