Fix N+1 queries detected by Bullet#2665
Merged
Merged
Conversation
Odaeus
approved these changes
Jun 23, 2026
Odaeus
left a comment
There was a problem hiding this comment.
This is totally sensible. 👍🏻
If performance on these pages is an issue you could also look at other options like pulling from a DB view or preemptive caching.
Collaborator
Author
I also created #2666, which improves performance considerably. |
698a7c6 to
f3d1fe1
Compare
…inate N+1 queries Bullet detected N+1 queries on Workshop#organisers and Event#organisers when rendering the events list. Also removed unused permissions eager loading on Meeting queries, kept venue (used in the view), and added organisers to fix its N+1. Meeting analysis: - venue: used in _event.html.haml line 18-20 (all 51 meetings have venue_id in production), kept - permissions: not directly accessed in view; includes(:permissions) doesn't reduce organisers queries (they fire their own SQL join regardless), dropped - organisers: accessed in view line 32-34, was causing N+1, added
f3d1fe1 to
1f1ef6a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Fixes N+1 queries caught by the Bullet gem during development.
Changes
organiserson Workshop and Event queries in the events controller (both upcoming and past views)organiserson Meeting queries (was causing N+1, same as Workshop and Event):permissionson Meeting queries -- genuinely unused in this view;includes(:permissions)adds a preload query without reducing theorganisersqueries (they fire their own SQL join regardless):venueon Meeting queries -- all 51 meetings havevenue_idset in production, andevent.venueis accessed in_event.html.hamlline 18-20Verification