1

私はRails 3.2 Webアプリを開発しており、マルチテナンシーとしてActs_as_tenant gemを使用しています。この gem を使用する場合、account_id というフィールドをすべてのモデルに追加する必要があります。したがって、この Project.find(1) を実行すると、スコープが使用されるため、account_id は常にクエリに含まれます。私の質問はこれです:

Project モデルに複合インデックスを追加する必要がありますか? account_id (gem はそれを行います) と project_id の両方で検索しているので、これら 2 つのインデックスが一緒に表示されますか? 現在、各フィールドに個別のインデックスがあります。

4

2 に答える 2

2

Acts_as_tenant gem (使用したことはありません) についてはあまり知りませんが、理論的に言えば、何らかの理由でidおよびaccount_idフィールドに対してクエリを実行している場合は、それらのクエリをカバーするために複合インデックスを追加する必要があります

gem がデフォルトで余分なインデックスを追加していないことを確認してください。

于 2013-08-19T07:18:08.957 に答える
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 に答える