1

我正在开发一个 Rails 3.2 Web 应用程序,并且我正在使用Acts_as_tenant gem 作为多租户。使用这个 gem 时,我必须在我的所有模型中添加一个名为 account_id 的字段。因此,当我执行此 Project.find(1) 时,它使用一个范围,以便 account_id 始终在查询中。我的问题是这样的:

我需要向项目模型添加复合索引吗?由于我同时使用 account_id (gem 这样做)和 project_id 进行搜索,因此我有一个与这两者一起的索引?现在我在每个字段上都有单独的索引。

4

2 回答 2

2

我发现这是一个关于索引的非常好的资源 - 但在阅读它之前我相当一无所知。我认为这取决于您目前的理解。它有点旧,但总体思路没有改变......检查一下!

https://web.archive.org/web/20150923034803/https://tomafro.net/2009/08/using-indexes-in-rails-index-your-associations

而这个专门解决复合索引的问题 -

https://web.archive.org/web/20140426154227/https://tomafro.net/2009/08/using-indexes-in-rails-choosing-additional-indexes

于 2013-08-19T07:14:36.233 回答
2

不太了解 Acts_as_tenant gem(从未使用过),但从理论上讲,如果出于某种原因您现在正在查询idaccount_id字段,那么的,您需要添加一个复合索引来覆盖这些查询。

只要确保 gem 默认没有添加额外的索引。

于 2013-08-19T07:18:08.957 回答