我应该索引哪一列
本文关键字:一列 索引 我应该 | 更新日期: 2023-09-27 18:24:31
我有一个有3列的表:
int UserID
datetime WorkDate
string WorkDetail
每个用户每个WorkDate
将有一个WorkDetail
。我使用L2S,where子句匹配UserID
和WorkDate
,如下所示:
where t.UserID == TheUserID && t.WorkDate.Date == TheDate.Date
我应该保持where参数的顺序不变吗?我应该索引日期还是userID
?
谢谢。
你真的应该同时索引日期和用户id。至少,只需索引用户id即可。
如果每个用户只有一个WorkDate,则将其作为数据库中的主键。它将强制数据完整性,并一次性提供索引。
我暂时会选择UserID索引。
如果你发现额外的日期索引的性能更好,那么继续创建它。
如果您需要按日期搜索,而不管用户是谁,则没有什么可以阻止您将来添加额外的日期索引。
如果你说每个用户都有一个日期细节,那么它应该是(userId,workDate)上的唯一索引