我应该索引哪一列

本文关键字:一列 索引 我应该 | 更新日期: 2023-09-27 18:24:31

我有一个有3列的表:

  • int UserID
  • datetime WorkDate
  • string WorkDetail

每个用户每个WorkDate将有一个WorkDetail。我使用L2S,where子句匹配UserIDWorkDate,如下所示:

where t.UserID == TheUserID && t.WorkDate.Date == TheDate.Date

我应该保持where参数的顺序不变吗?我应该索引日期还是userID

谢谢。

我应该索引哪一列

你真的应该同时索引日期和用户id。至少,只需索引用户id即可。

如果每个用户只有一个WorkDate,则将其作为数据库中的主键。它将强制数据完整性,并一次性提供索引。

我暂时会选择UserID索引。

如果你发现额外的日期索引的性能更好,那么继续创建它。

如果您需要按日期搜索,而不管用户是谁,则没有什么可以阻止您将来添加额外的日期索引。

如果你说每个用户都有一个日期细节,那么它应该是(userId,workDate)上的唯一索引