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+.

Read More

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!

Related posts

Leave a Reply

6 comments

  1. 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.

  2. 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);
    
        }
    
  3. 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.

  4. 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.