Every time you write or edit a WordPress post, WordPress saves the change as a post revision. As you might expect, this fills up your database with a huge amount of unneeded post revisions and information. This uses space which should be free space, the MySQL database becomes bloated. You can clean up these WordPress post revisions quite easily, you only need one (1) simple SQL statement.
Delete WordPress post revisions, turn them off and speed up your WordPress blog.
Remove WordPress post revisions with an SQL statement
Clean up WordPress post revisions, save on MySQL database size and improve WordPress’ performance.
To delete the WordPress post revisions you only need one SQL statement. Execute this SQL query to remove all post revisions from your MySQL database:
DELETE a, b, c FROM `wp_posts` a LEFT JOIN `wp_term_relationships` b ON a.id = b.object_id LEFT JOIN `wp_postmeta` c ON a.id = c.post_id LEFT JOIN `wp_term_taxonomy` d ON b.term_taxonomy_id = d.term_taxonomy_id WHERE a.post_type = "revision" AND d.taxonomy != "link_category"; DELETE from `wp_posts` WHERE post_type="revision";Code language: SQL (Structured Query Language) (sql)
This’ll remove all WordPress post revisions, your MySQL database is smaller and faster! Don’t forget to change
wp_ with your database table prefix.
Limit or disable WordPress post revisions
The maximum number of saved revisions can be configured in the
wp-config.php file. To save a maximum of five revisions, use:
define( 'WP_POST_REVISIONS', 5 );Code language: PHP (php)
Or to completely disable the WordPress post revision functionality, use:
define( 'WP_POST_REVISIONS', false );Code language: PHP (php)
However, according to Mike Little (the co-founder of WordPress), WordPress’ database queries do not retrieve revisions. The number of revisions should have no effect on the queries. The only time the revisions are retrieved is on the edit page of the individual post. There is no impact on the front end speed of your site.
The post revision feature can be a lifesaver.
Bonus: Clean up comment and post meta data
If you want to clean up your WordPress MySQL database even further, then you can use the following SQL queries / statements to lookup and remove post meta data and comment meta data. Don’t forget to set your table prefix.
-- Clean WordPress Post Meta Data SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL; DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL; -- Clean WordPress Comment Meta Data SELECT * FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments ); DELETE FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments ); SELECT * FROM wp_commentmeta WHERE meta_key LIKE '%akismet%'; DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';Code language: SQL (Structured Query Language) (sql)
As always: use with care.
Protip: Donate $10, 20 or 30 through Paypal (or see my donate page) and support this site. Thank you <3