0
Ich muss diese Abfrage optimieren, weil es mehr Zeit in Anspruch nimmt und ich Gruppe mit group_category
und user_comments
genehmigen möchte.Abfrage mit Include in Schienen optimieren 4
@latest = Group.scope_approved
.order('id desc')
.includes(:group_category, :user_comments)
.paginate(page: params[:page], per_page: 10)
Es gibt Tausende von Datensätzen in der Gruppe.
ich mit 'mysql2' bin, '~> 0.3.18'
Jede Idee?
(von Kommentar)
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
zeigen Sie Ihr Protokoll, wenn die Abfrage wird Feuer sowie zeigen Sie Ihre scope_approved Methode –
Group Load (5.4ms) SELECT 'Gruppen'. * FROM' Gruppen' WHERE 'groups'.approved' = 1 ORDER BY id desc LIMIT 10 OFFSET 0 GroupCategory Laden (1.2ms) SELECT 'group_categories'. * FROM' group_categories' WHERE 'group_categories'.id' IN (16, 3, 10, 1, 14) UserComment Laden (73635.3ms) SELECT' user_comments'. * FROM 'user_comments' WHERE' user_comments'.commentable_type' = 'Group' UND 'user_comments'.commentable_id' IN (67142, 67141, 67140, 67137, 67136, 67135, 67134, 67131, 67130, 67129) (61.3ms) SELECT COUNT (*) Von 'Gruppen' WHERE' groups'.approved' = 1 –
Bitte löschen Sie diesen Code aus dem Kommentar und fügen Sie ihn mit Ihrer Frage –