CRM/Contribute - Add query optimization for creditnote_id #13511
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.
Overview
When contributions are cancelled or refunded, the field
creditnote_id
is set to the next sequential number following the last generatedcreditnote_id
.Before
The query used to determine the last
creditnote_id
looks at all contributions in the database.After
The query only looks at contributions with an existing
creditnote_id
, which is typically only a small subset of all contributions.Comments
Query runtime went from about ~2.5 seconds to ~0.01s on a relatively beefy server with >10M contributions. Thanks to @JoeMurray for the idea!