pgsql: Reduce cost of GetNotification by 2.5x #279
Merged
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.
This PR optimizes specifically
searchNotificationLayerIntroducingVulnerability
, called twice byGetNotification
.By delaying the Layer join to the very end, we can cut the query costs from
540,836
to219,477
. Below are results ofEXPLAIN ANALYZE
on one of the worth case found today. We can observe a reduction of execution time from5470.466 ms
down to2521.073 ms
. This query fully uses the index added in #278. When executed with the parameters used in #278 (redacted), a >10x gain is seen.Original query
New query