Will it break my site if I delete all transient records in wp_options table?

My site currently has an outrageous 500k+ transient records in the wp_options table.
This causes the table to be crashed frequently and so be my site.

I thought transient records will all expired after some time.
I’m not sure which plugins are responsible and what went wrong yet.
However, I don’t want my site to crash frequently like this.
The number of records in wp_options table has grossly increased to 200k+ a few weeks ago and now 500k+.

Should I only delete the %transient_timeout% records – 200k+ of them at the moment?

Any help would be greatly appreciated.

Updates on 16th July 2012

I actually took risk (I backed up my site first) by deleting all the transient records and my site’s database hasnt’ crashed ever since 🙂

Thanks again, everyone!

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

This is a fairly definitive set of responses about transients

WPSE: Are transients garbage collected?

Method 2

I used:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('%_transient_%');

to cleanup with great results 🙂

(from here https://stackoverflow.com/questions/10422574/can-i-remove-transients-in-the-wp-options-table-of-my-wordpress-install)

Method 3

Transients, as a rule are temporary data. So if the person who coded the use of such data did so properly, you should be fine. My knowledge of the subject is limited, though, and I have not had much experience with them myself.

Your best bet will almost certainly be to back up your database, wipe out the data you don’t think you need, then test your site. If your live site is heavily trafficked, be sure to test on a local instance so nobody is affected during testing.

Method 4

Here’s a simple function to clear all transients and timeouts – add extra to fit your needs.

    function clear_transients()
    {

        global $wpdb;

        // delete all "namespace" transients
        $sql = "
            DELETE 
            FROM {$wpdb->options}
            WHERE option_name like '_transient_namespace_%'
            OR option_name like '_transient_timeout_namespace_%'
        ";

        $wpdb->query($sql);

    }

Method 5

Transients are nothing but temporary options, which are kept in the database for a certain period, means they expire once their purpose is over.

For example: The _site_transient_update_plugins transient. It holds the information about the plugins which have updates available. If you delete this transient, and then refresh your dashboard, you’ll find it back in your database. So, even if you delete a transient, WP will regenerate it. It won’t break your site, but will definitely cause unexpected things to happen! Make sure you backup your DB before deleting any of these transient values.

Method 6

Transients are suppose to be temporary, but if a developer coded stuff wrong, then after deleting all of the transients, you may need to re-save theme/plugin/widget settings to recreate transients. Most of the time this isn’t an issue though, and you will be just fine to delete all of the transients on the site.

Once the transients are deleted, your theme and your plugins will need to rebuild the transients they rely on. This will cause a performance hit immediately the transients have been removed, after which the site should run slightly faster with the unnecessary transients that may have accumulated in your database now gone.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x