Use comments counter cache instead of additional query #7627
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? Why?
When browsing e.g. the blogs index, you can see from the benchmarks that there are bunch of
COUNT
queries done against the comments table.The counter caches were already added at #6438 but they are not properly used.
It also does not work if we would add
counter_cache: :comments_count
to the commentable concern:decidim/decidim-comments/lib/decidim/comments/commentable.rb
Line 13 in 96c78cb
Even after it is added there and the
Comment
model (as with other counter caches), the queries won't disappear.The only way how I could figure out to get rid of the extra queries was by accessing the cache column directly.
📌 Related Issues
Testing
COUNT
queries against the comments table (see screenshot)📋 Checklist
docs/
.📷 Screenshots