Performance: Add cache priming for grouped product child product loops #61784
+12
−1
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.
Description
Fixes N+1 query pattern in grouped product price calculations where child products are fetched individually without cache priming.
Problem
When grouped products update their prices from child products, the
update_prices_from_children()method loops over all children callingwc_get_product()without priming caches first:Impact
For grouped products with many children:
Solution
Prime post caches before the loop:
When This Occurs
Price updates happen when:
Technical Details
File:
includes/data-stores/class-wc-product-grouped-data-store-cpt.phpMethod:
update_prices_from_children()Lines changed: 72-86
Safety:
_prime_post_caches()functionPerformance Impact
Estimated improvement: 20-30% faster price calculations for grouped products with 20+ children
Testing