Fix N+1 in profiles/NotificationController
Problem To Solve
Currently https://gitlab.com/profile/notifications takes > 60s
to load if you are a member of a few hundred groups and/or projects. There are two root causes for this:
- There's a hard-to-fix N+1 in
app/controllers/profiles/notifications_controller.rb
that we should try to fix (this issue) - No pagination on the notifications page (#28459 (closed))
Proposal
- Fix the N+1
The following discussion from !17303 (merged) should be addressed:
-
@smcgivern started a discussion: (+1 comment) Isn't this an N+1 query? I don't think we need to fix it in this MR, per se, but we should create a follow-up issue describing it if it is.
Additional Context
If performance has not improved after implementing fixes for the first two root causes, we should explore Linear Group Queries as opposed to our current recursive CTE approach.
Edited by Gabe Weaver