0
このクエリは時間がかかり、グループをgroup_category
とuser_comments
で承認したいので、このクエリを最適化する必要があります。レールでのインクルードを使用してクエリを最適化する
グループには何千ものレコードがあります。
私は 'mysql2'、 '〜> 0.3.18'
任意のアイデアを使用していますか? (コメントから)
Group Load (5.4ms)
SELECT groups.*
FROM groups
WHERE groups.approved = 1
ORDER BY id desc
LIMIT 10 OFFSET 0
GroupCategory Load (1.2ms)
SELECT group_categories.*
FROM group_categories
WHERE group_categories.id IN (16, 3, 10, 1, 14)
UserComment Load (73635.3ms)
SELECT user_comments.*
FROM user_comments
WHERE user_comments.commentable_type = 'Group'
AND user_comments.commentable_id IN (67142, 67141, 67140,
67137, 67136, 67135, 67134, 67131, 67130, 67129)
(61.3ms)
SELECT COUNT(*)
FROM groups
WHERE groups.approved = 1
クエリが起動しているときにログを表示し、scope_approvedメソッドを表示します –
グループロード(5.4ms)SELECT 'groups'。* FROM' groups' WHERE 'groups'.approved' = 1 ORDER BY id desc LIMIT 10 OFFSET 0 GroupCategory Load(1.2ms)SELECT 'group_categories'。* FROM' group_categories' WHERE 'group_categories'.idid IN(16,3,10,1,14) UserComment Load(73635.3ms)SELECT' (67142,67141,67140,67137,67136,67135,67134,67131,67130,67129)のように、「user_comments」から「from user_comments」。* FROM 'user_comments' WHERE' user_comments'.commentable_type' = 'Group' AND 'user_comments'.commentable_id' (61.3ms) 'groups'.approved' = 1 –
からこの数字をクリアして質問に添付してください。 –