Support » Plugin: WooCommerce » Too many wc transients created in DB

  • Resolved marketing guy

    (@el-terrible-bmw)


    My wp_options table has 5,000 rows to 148,000 rows in a matter of 8 days due to transients such as:

    _transient_wc_rating_count
    _transient_wc_average_rating_
    _transient_timeout_wc_rating_count
    _transient_timeout_wc_review_count
    _transient_timeout_wc_average_rating

    Database search shows that there are:
    _transient_wc% = 70,940 total
    _transient_timeout_wc% = 70,940 total

    Why are they increasing at such a high rate? Shouldn’t they be deleting themselves? When I click on delete expired transients button in WooCommerce system status, it only deletes a few, so they must not be expired.

    This seems to have a big performance impact on the website so there’s gotta be a solution to prevent this.

    https://wordpress.org/plugins/woocommerce/

Viewing 15 replies - 1 through 15 (of 44 total)
  • Here’s actually a breakdown of total rows for each transient type, most of which have been accumulated over the past 8 days:

    _transient_wc_rating_count% = 33,073
    _transient_wc_review_count% = 5,024
    _transient_wc_average_rating_% = 33,073
    _transient_timeout_wc_rating_count% = 33,101
    _transient_timeout_wc_review_count% = 5,024
    _transient_timeout_wc_average_rating% = 33,101

    We are seeing the same issue, we do not have any solution as of yet. I did find this plugin, but I am not sure if I should try it…

    https://github.com/Seebz/Snippets/tree/master/Wordpress/plugins/purge-transients

    UPDATE: I also found this plugin…

    https://wordpress.org/plugins/delete-expired-transients/

    I think the problem is that most of these transients are not even expired so those plugins do not delete them. However, I do not understand why rating, review, and average reviews need thousands of transients anyways.

    It’s either a WooCommerce bug or some other plugin is causing the issue. Do you mind posting a full list of plugins you have installed so I can see if any match? Also, perhaps where your hosting the website?

    Thanks

    Plugin Author Mike Jolley

    (@mikejolley)

    The transient system in WordPress (which is a type of cache) uses 2 records;

    1. the transient data
    2. the transient expiry date

    When expired, WP won’t do automatic cleanup until a core update but https://wordpress.org/plugins/delete-expired-transients/ can help in that respect.

    Transients are generally faster to load that doing an expensive SQL query – thats why these values are cached.

    How many products do you have?

    There are 116 products. The website gets about 3-4k pageviews per day.

    I think the problem comes from these 3 timeout transient types because they’re all autoloaded. I imagine when there’s like 70k of each, and they’re all autoloaded, that’s like 210k rows in the PHP’s memory? That’s usually when I’ve noticed the website is extremely slow or unresponsive and I end up having to manually delete the transients (i.e. every 2 weeks or so.)

    _transient_timeout_wc_rating_count%
    _transient_timeout_wc_review_count%
    _transient_timeout_wc_average_rating%

    This has only started happening for like 4-6 weeks so it wasn’t an issue before.

    Also many of these transients have the exact same option_name and option_value value. Is that supposed to be? Seems weird that it would be there multiple times.

    http://s13.postimg.org/q5eoxhitj/wc_transients.png

    Plugin Author Mike Jolley

    (@mikejolley)

    Logged here, we’ll take a look https://github.com/woothemes/woocommerce/issues/8131

    And our site too! Database has just hit over 60mb

    After deleting expired transients we still have over 200000 transients mainly like the below.
    _transient_wc_rating_count
    _transient_wc_average_rating_

    You can view the transients using https://wordpress.org/plugins/transients-manager/

    https://wordpress.org/plugins/delete-expired-transients/ works to delete some of the expired transients but like ‘el terrible bmw’ most of our transients are not expired

    OP, Try going to WooCommerce on the side menu, System Status. Then at the top the tab for Tools and you can clear WC transients there.

    Mike, That sounds like an awesome update! Thanks for logging!

    Hi Guys, I.m having the exact same problem
    Woocommece VersiĆ³n 2.4.10
    I manage to delete with plugin wp-optimize but I had to modify the plugin to run the clean every hour but I don’t like this solution.
    I the clean doesn’t run every hour, the transient goes up to 350.000
    Did anyone found a final solution?
    Is there any way to disable ratings in woocommerce so this transients are no created?

    Thanks in advance.

    I used the plugin “Delete Expired Transients” to get the situation under control. Good luck.

    Plugin Author Mike Jolley

    (@mikejolley)

    Is there any way to disable ratings in woocommerce so this transients are no created?

    Not advisable. Storing a few transients as cache is faster than querying all reviews and calculating an average every page load.. thats why they are there.

    Hey Mike!

    I understand that is not advisable, but, what if I don’t want any review or rating so I can stop this transients? Is that posible ?

    Thanks for your support.

    Plugin Author Mike Jolley

    (@mikejolley)

    @gustavogravina Are you disabling reviews then? If you’re not using reviews, I don’t think the review/rating functions are called, and if thats the case they won’t be set https://github.com/woothemes/woocommerce/blob/5893875b0c03dda7b2d448d1a904ccfad3cdae3f/includes/abstracts/abstract-wc-product.php#L1075

    This problem has just crashed my site. http://www.createteachinspire.com I can’t even access it. The techs at Godaddy are trying to clean out the transient files so I can at least get back onto my site and get a plugin installed.

    Any suggestions for the best plugin to use?

    Does anyone know if this is some kind of bug in WooCommerce that might get fixed?

    Thanks.

Viewing 15 replies - 1 through 15 (of 44 total)
  • The topic ‘Too many wc transients created in DB’ is closed to new replies.