Home Forums WoodMart support forum Critical Performance Issue: Auto-Loaded Review Transients Causing Database Overh

Critical Performance Issue: Auto-Loaded Review Transients Causing Database Overh

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #724916

    it-1760
    Participant

    Hi WoodMart Support,

    We are contacting you regarding a critical performance issue in the WoodMart theme that affects all installations running review aggregation features.

    Issue:
    The theme generates transients via set_transient( ‘wd_reviews_by_criteria_’ . $product_id . ‘_’ … ) with auto-load enabled. On sites with substantial product catalogues (like textbookcentre.com), this accumulates tens of thousands of transients that are auto-loaded on every page request, creating unnecessary database overhead and degrading performance.

    Our client environment:
    – 80,000+ accumulated transients of this pattern
    – Measurable performance impact on page load times and server resources
    – The problem scales with store size, affecting all WoodMart installations

    Solution:
    Disable auto-load for the wd_reviews_by_criteria transient pattern. Change the set_transient() call to:

    set_transient( ‘wd_reviews_by_criteria_’ . $product_id . ‘_’ . $criteria, $data, EXPIRATION, false );

    Setting the fourth parameter to false prevents WordPress from auto-loading these transients, while preserving the review caching functionality.

    Action required:
    1. Update the WoodMart theme code to set auto-load=false for this transient pattern
    2. Release an updated version that includes this fix
    3. Advise existing users how to deploy it

    This change will improve theme performance across all WoodMart installations and is a best practice for transients of this scale.

    Please confirm receipt and your timeline for releasing this fix.

    #724919

    Serg Sokhatskyi
    Keymaster
    Xtemos team

    Hi there,

    Thanks for the detailed report. We can confirm that this can be an issue on some installations with large catalogs.

    However, the fix you propose won’t work. The WordPress set_transient function doesn’t have a fourth parameter for autoload, so transients are autoloaded by design. Adding false as a fourth argument won’t change this behavior.

    We will add an expiration for these wd_reviews_by_criteria transients so they are stored only for a limited time rather than indefinitely, which will reduce database load and improve performance.

    Kind regards,
    XTemos Studio

    #724921

    it-1760
    Participant

    Hi Serg Sokhatskyi,

    Thanks for the update.

    When is the transient set? Is it refreshed every day, or is it updated only when a specific activity or data change occurs on the website?

    Thanks,
    Ravi

Viewing 3 posts - 1 through 3 (of 3 total)