0
我已經開始使用query-analyzer並且它警告我關於相同的查詢。如何在檢索模型中的記錄時減少相同查詢的數量
對於情況下,我在頁面上加載25 「上崗」,而當前用戶可以 「明星」 後:
0.018s 25次相同的查詢
SELECT SQL_NO_CACHE N AS one FROM 'stars' WHERE 'stars'.'post_id' = N AND 'stars'.'user_id' = N LIMIT N
這是用戶模型中的方法:
def has_starred_post?(post)
return false if post.nil?
Star.where(post_id: post.id, user_id: self.id).exists?
end
如何通過減少數量來滿足此警告o f查詢?
更新:
每泰倫東的提示,我更新了User
模型方法:
def has_starred_post?(post)
return false if post.nil?
self.stars.where(post_id: post.id).exists?
# OR post.stars.where(:user_id => self.id).exists?
end
雖然這讓我聯想到/高速緩存屬於用戶的星星,我還是必須使用where
來檢查這些明星是否屬於該帖子。對?
嗨泰倫感謝您的答覆。我已經用您的反饋更新了我的問題,但如果您有時間,我還有一個問題。謝謝! –
@JodyHeavener一旦收到答案,就不會被視爲運動來改變問題。 – e4c5
但問題是一樣的? –