We have an ongoing discussion here.
If you read a bit then you see that my splendid mate Mike Jolley is aware of the problem and has implemented a possible solution for this in WooCommerce 2.5 – fingers crossed
But you do not need to wait that long.
You can try and tackle this manually using this:
- plugin: https://wordpress.org/plugins/delete-expired-transients/
- plugin: https://wordpress.org/plugins/transients-manager/
- plugin: https://wordpress.org/plugins/artiss-transient-cleaner/
- Using our tools will also alleviate the issue. Go to /wp-admin/admin.php?page=wc-status&tab=tools and hit the buttons “clear transients” and “clear expired transients”
This issue occurs when the WP system neglects to delete old transients. Normally WordPress is aware of all transients and after a while purges obsolete ones from the database. However when there is something that interferes by changing the expiration date or set lifetime of these transients, build ups like this can happen.
Now in many cases the reason behind this is server sided caching. Hosting providers sometimes unintentionally do set up caching methods in a way that prevents WordPress from processing them normally. This guy here has got it figured out and luckily also decided to write it all up.
It is quite technical but he has got it covered on all aspects from where I stand.
Besides that I am aware of two other possible reasons for this issue:
- Cron tasks aren’t working on your site
- A bot is crawling your site and creates sessions on the fly
My good friend and fab colleague Remi has covered this problem and posted solutions here: http://www.remicorson.com/too-many-wc_sessions-in-woocommerce/
I hope this helps you understand and gives you ways of managing the issue.
PS: You can also give this a try: https://github.com/kloon/woocommerce-large-sessions – a plugin that offloads WC data to reduce transients.
And never forget: **Before you do that, please do make a full backup!**