2012-12-09 43 views
0

在我們的多租戶應用程序中where account_id = ...被添加到(幾乎)每個查詢中。幾乎每個表都有一個account_id列。表索引和默認範圍

在這樣的設置中,爲表的外鍵添加索引時,是否應該始終在索引中包含account_id?

因此,例如:

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

的方式我們的應用程序設置它永遠不會沒有上ACCOUNT_ID一個條件運行的項目表的查詢,所以我希望第二個選項是正確的。但我不是db專家。

在我們的案例中,最好的方法是什麼?

回答

0

這在很大程度上取決於項目表中對於任何特定客戶Id值存在多少行。如果你永遠不會超過幾百個或更多,我不確定我是否會添加帳戶Id列。當然,真正確定這一點的最好方法是進行一些性能測試,無論是否使用索引。