2012-12-12 98 views
0

我正在用的模型(用戶)的一個項目的模式,已經積累了十幾「的has_many」關係。雖然用戶模型本身並不包含大量數據,但加載速度非常緩慢。Rails的加載速度緩慢的,有很多的has_many關係

作爲一個測試,我發現,如果我註釋掉「的has_many」關係加載相當快。

很明顯,我不能在實踐中做到這一點,但做什麼用「的has_many」導致它的顯著增加負荷時發生了什麼?我無法想象它實際上是在查詢這些關係,對吧?

我能做些什麼來加速這個嗎?

+0

一個事實,即可以useful-用戶模型是一個共享的繼承表。它實際上是來自用戶模型的Customer模型 - 有這個困難。不知道這是否有所作爲。 – LastZactionHero

+1

是否使用STI。如果您檢查是否在類型列上有索引已經在模型中定義了關聯,因爲has_many與查詢無關,除非您通過顯式加載或某種類型的聯接來查詢它們全部。 – VelLes

+0

你considere建立在每個表的每個列的索引??? – Jean

回答

0

只是不要在沒有必要的情況下調用關聯,並檢查是否啓用了預加載。