Question to say "I can!"

清理WordPress 數據庫冗余數據

2015-01-31

來自:大發老師——清理WordPress 數據庫冗余數據

Mysql 可以說是后端決定速度中最重要的部分,最明顯的就是你剛創建博客只有1篇文章的時候和寫了1年博客時的加載速度,那真是天壤之別,這就是為什么每次hello world都很有快感的原因之一。

雖然有很多清理數據庫的插件,但是大發還是喜歡自己使用sql語句定期清理數據庫,主要是插件不是所有的表都可以清理,比如options表,一般插件是無法清理的。數據庫的垃圾數據主要存在wp_posts wp_postmeta wp_commetns wp_commentmetawp_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/ 目錄,然后在后臺“插件”那里啟用。

插件也是執行以上語句,所以清理時也請備份數據庫,以免發生意外。

作者:admin | Categories:優化維護 | Tags:

發表評論

電子郵件地址不會被公開。 必填項已用*標注

*

澳洲f1赛车b盘开奖套路 黑龙江省22选5最新开奖结果 色综合 东京热 银行可以给私募基金配资吗 北京赛车 天津11选5综合走 新11选5 麻将无双之三国群英破解版 长峰河南写真集 美女麻将 真人单机版 哪个网站上有e球彩 全民麻将外挂 长峰河南种子 北京赛车pk10 安徽十一选五查询 尼克斯vs凯尔特人 南京麻将算法附照片