Preload kaminari collections to avoid counting #133
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.
Why
The goal of this change is to avoid doing a
COUNT(*)
when paginating a query with only one page of results.This is important to us because we are running a large postgres database where
COUNT(*)
tends to add significant overhead on our larger multi-gigabyte tables.What
Assumptions
This PR is built on the assumption that we will always be loading the relation we are paginating.
Before
With a search that returns 2 results:
After
With a search that returns 2 results:
With a search that returns 2 results and a page size of 1 we still get the COUNT: