-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include index_name column in index for tables used in sorting #2753
Conversation
Given query SELECT a.resourceId
FROM ResourceEntity a
LEFT JOIN DateIndexEntity b
ON a.resourceUuid = b.resourceUuid AND b.index_name = '_lastUpdated'
LEFT JOIN DateTimeIndexEntity c
ON a.resourceUuid = c.resourceUuid AND c.index_name = '_lastUpdated'
WHERE a.resourceType = 'Encounter'
GROUP BY a.resourceUuid
HAVING MAX(IFNULL(b.index_from, 0) + IFNULL(c.index_from, 0)) >= -9223372036854775808
ORDER BY IFNULL(b.index_from, -9223372036854775808) DESC, IFNULL(c.index_from, -9223372036854775808) DESC; previous query generated was
this changes to
And testing in a database with 166293 resources and 137517 encounters, the previous query plan took
while the updated takes
|
In a database with 125206 resources and 109654 tasks, query SELECT a.resourceId
FROM ResourceEntity a
LEFT JOIN DateIndexEntity b
ON a.resourceUuid = b.resourceUuid AND b.index_name = '_lastUpdated'
LEFT JOIN DateTimeIndexEntity c
ON a.resourceUuid = c.resourceUuid AND c.index_name = '_lastUpdated'
WHERE a.resourceType = 'Task'
GROUP BY a.resourceUuid
HAVING MAX(IFNULL(b.index_from, 0) + IFNULL(c.index_from, 0)) >= -9223372036854775808
ORDER BY IFNULL(b.index_from, -9223372036854775808) DESC, IFNULL(c.index_from, -9223372036854775808) DESC; previously took
compared to
|
@LZRS is this intended to be a draft PR ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks @LZRS! great pr!
IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).
Improves performance for queries that may involve sorting with search params
Fixes #2758
Description
Clear and concise code change description.
Alternative(s) considered
Have you considered any alternatives? And if so, why have you chosen the approach in this PR?
Type
Choose one: (Bug fix | Feature | Documentation | Testing | Code health | Builds | Releases | Other)
Screenshots (if applicable)
Checklist
./gradlew spotlessApply
and./gradlew spotlessCheck
to check my code follows the style guide of this project../gradlew check
and./gradlew connectedCheck
to test my changes locally.