我应该索引哪一列

时间:2012-02-12 17:28:45

标签: c# database linq-to-sql

我有一个包含3列的表格:

  • int UserID
  • datetime WorkDate
  • string WorkDetail

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

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

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

感谢。

4 个答案:

答案 0 :(得分:1)

你真的应该在日期和用户ID上进行索引。至少,只需索引用户ID。

答案 1 :(得分:0)

暂时我会去找一个UserID索引。

如果您通过其他日期索引找到更好的效果,请继续创建。

如果您需要按日期搜索而不管用户是什么,则无法阻止您以后添加其他日期索引。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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