-
Notifications
You must be signed in to change notification settings - Fork 69
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
Set orderby to none
for order queries where checking if order exists.
#10051
Set orderby to none
for order queries where checking if order exists.
#10051
Conversation
Test the buildOption 1. Jetpack Beta
Option 2. Jurassic Ninja - available for logged-in A12s🚀 Launch a JN site with this branch 🚀 ℹ️ Install this Tampermonkey script to get more options. Build info:
Note: the build is updated when a new commit is pushed to this PR. |
Size Change: 0 B Total Size: 1.36 MB ℹ️ View Unchanged
|
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.
Great enhancement, @prettyboymp! The code changes LGTM and testing checks out.
@prettyboymp I went ahead and merged this PR so I can include the changes in the caching PR |
Partially Fixes #10046 (caching should still be added)
Changes proposed in this Pull Request
Set orderby to
none
for order queries where checking if order exists.The queries run by
wc_get_orders()
as requested fromWC_Payments_Incentives_Service->get_store_context()
are pretty slow for sites with a large number or orders. Since we only need to check if an order exists, we can optimize these queries a bit by setting theorderby
clause tonone
. This allows the query to return as soon as it finds the first matching record rather than needing to continue to scan for all the matching rows so it can sort to find the newest order.This only improves the query performance if an order matching the criteria exists, but it is at least a start. We should add caching around these queries to avoid the need to have them run every admin page load.
Testing instructions