Mysql 可以说是后端决定速度中最重要的部分,最明显的就是你刚创建博客只有1篇文章的时候和写了1年博客时的加载速度,那真是天壤之别,这就是为什么每次hello world都很有快感的原因之一。
虽然有很多清理数据库的插件,但是大发还是喜欢自己使用sql语句定期清理数据库,主要是插件不是所有的表都可以清理,比如options表,一般插件是无法清理的。数据库的垃圾数据主要存在wp_posts wp_postmeta wp_commetns wp_commentmeta 和 wp_options ,另外百度社会化插件也会额外创建两个表。
注意:以下sql语句都是在前缀为wp的情况下,如果你有做修改请替换成你自己,另外阿里云rds不支持多条语句一次执行,请分步执行。在执行数据操作时一定要备份数据库,以免发生意外。
wp_posts
删除文章修订版本
DELETE FROM wp_posts WHERE post_type = 'revision';
wp 媒体管理器上传图片的时候同事会成才attachment 文章格式,如果你不需要根据这个检索图片的话也可以删掉。
DELETE FROM wp_posts WHERE post_type = 'attachment';
wp_postmeta
这里是重灾区,可以执行以下命令
DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT post_id FROM wp_posts);
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';
DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
DELETE FROM wp_postmeta WHERE meta_value = '{{unknown}}';
如果你不需要管理你的多媒体文件可以使用下面这两句
DELETE FROM wp_postmeta WHERE meta_key = '_wp_attached_file';
DELETE FROM wp_postmeta WHERE meta_key = '_wp_attachment_metadata';
综合到一起可直接执行下面两句
DELETE FROM wp_postmeta WHERE meta_key in ('_edit_lock', '_edit_last', '_wp_old_slug', '_revision-control', '{{unknown}}', '_wp_attached_file', '_wp_attachment_metadata');
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT id FROM wp_posts);
wp_comments
删除所有垃圾评论
DELETE FROM wp_comments WHERE comment_type = 'trash';
删除所有待审评论
DELETE FROM wp_comments WHERE comment_approved = '0';
wp_commentmeta
一般来说直接删掉这个表就可以了,我是完全不使用这货的,如果你使用了commentmeta存储信息请谨慎执行此句
TRUNCATE TABLE `wp_commentmeta`
wp_options
尤其是使用我的网易云音乐和牧风的hermit,都会在wp_options表中产生大量垃圾数据。
DELETE FROM wp_options WHERE option_name LIKE '_transient_%';
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_%'
这样会删除所有临时数据,包括未过期的,谨慎使用。
PS
另外Akismet不但会减慢Wordpress 评论提交速度而且会产生大量打击数据。建议使用Ajax 评论提交并删除此插件。
另外如果你后台勾选了任何人都可以注册话你会发现你多了无数个用户,删除用户就不需要使用sql语句了。
一般来说如果你经常清理的话可能感觉不出速度,但是如果你很久或者从来没清理过,肯定能感受到速度的提升。
另外就是当你文章非常多的时候,可以关闭搜索功能,这货是非常耗费资源的。
使用WP Clean Up
可以在后台直接搜索 WP Clean Up 进行安装,或者 下载WP Clean Up 后,解压并上传到 /wp-content/plugins/目录,然后在后台“插件”那里启用。
插件也是执行以上语句,所以清理时也请备份数据库,以免发生意外。