表索引和默认范围

时间:2012-12-09 21:19:33

标签: database ruby-on-rails-3

在我们的多租户应用中,where account_id = ...被添加到(几乎)每个查询中。几乎每个表都有一个account_id列。

在这样的设置中,当为表的外键添加索引时,我是否应该始终在索引中包含account_id?

例如:

add_index 'projects', ["customer_id"]
OR
add_index 'projects', ["customer_id","account_id"]

我们的应用程序设置方式它永远不会在没有account_id条件的项目表上运行查询,所以我希望第二个选项是正确的。但我不是数据库专家..

在我们的案例中,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

这在很大程度上取决于Projects表中存在的任何特定客户Id值的行数。如果你永远不会超过几百左右,我不确定我是否愿意添加帐户ID列。当然,真正确定这一点的最好方法是在有和没有索引的情况下进行一些性能测试。