也就出現了今天這篇”WordPress速度優化系列之“清理數據庫”,全部來源于之前對和邪社進行優化所得來的經驗以及教訓,以后還有其他相關的文章。
通過上網搜索相關優化技巧和個人經驗,造福各位博主,于是就有了今天大家看到的WordPress優化系列之“清理數據庫”。
既然是WordPress優化系列,肯定有方方面面需要照顧到,比如選擇正確的插件,減少數據庫請求次數,如果最大限度的提升加載速度等等,我會盡量把方方面面需要說明清楚的內容都寫出來。今天就先講一下最容易也是最需要亟需解決的一個問題,那就是日益增長的數據庫問題。
剛接觸wordpress我對這方面的經驗為零,完全的從零開始,甚至沒有接觸過linux或者是相關的一些技術,比如Nginx(Apache)的優化配置,數據庫(MySQL)的理論知識以及相關的配置等等等等。只因從一臺完全空白的服務器(僅有linux或者是Windows)到一個完整的WordPress博客是一個相當“艱巨”的過程。而這篇文章提到的內容肯定不可能非常完善,以后我會逐步的將其充實起來。

目前小殘博客有300多篇日志和超過2000條評論,可是MySQL數據庫的總大小已經超過了250多MB,從上圖可以看到和邪社的數據庫大小已經到了250M(這個小殘優化之前的截圖,現在的數據庫因為已經清理完畢,所以很小了)
這么“龐大”的數據庫到底有多少有用呢?下面就開始一步步優化我們的數據庫。
清理wp-commentmeta表
WordPress現在已經發展到了3.1版本,而如果是從2.X系列就開始使用WP的用戶則會發現數據庫增長的比例跟文章發布的數量不成比例,原因當然有很多。
我們首先要清理的是wp_commentmeta這個表,在2.9版本之前,這個表完全不存在,先來看看它的內容,瀏覽表結構可以發現其為akismet_history、akismet_result、akismet_as_submitted等
很顯然,這個是WP官方推薦的反垃圾評論插件Akismet所生成的,其值的作用是記錄管理員用戶對垃圾評論的處理結果以及插件自動判斷某條評論是否為垃圾評論的相關記錄。
(如果你沒有安裝這個Akismet插件)可以跳過這一步
如果你安裝了AKismet那么只需要在MySQL管理器也就是phpMyAdmin里面輸入一條簡單的命令即可清除。進入數據庫運行MySQL語句查詢,
復制代碼
代碼如下:TRUNCATE TABLE `wp_commentmeta`

清理Revision Post(日志修訂)
Revision Post 是 WordPress 在2.6版之后加入自動保存日志修訂版造成的,您每修改一次日志,就會增加一個 revision , 如果您修改多次,數篇日志之后,這將是一個很可怕的數量!您如果有上百篇的日志,您的冗余 revisiong 可能會有上千篇之多!
(此描述來自插件delete-Revision manager)這里我們使用一個簡單好用的插件來清理,Delete-revision Manager(WP官方擴展鏈接),安裝此插件后,運行該插件可以清楚的看到目前數據庫里面所保存的日志修訂。
PS:安裝好插件清理成功后在修改修改wp-config.php文件:合適的位置插入這一行參數:
復制代碼
代碼如下://取消自動修訂版
define('WP_POST_REVISIONS',false);
徹底優化清理wp_options
wp_options表是用來存貯WP的設置方面的信息,如博客名、博客地址、基本設置、插件設置、主題設置…等。
關于這個表,如果你不是磚家級的人物,建議直接跳過,因為這個操作這個表的危險性比較大。此表用來存儲WP設置相關的信息,如地址、插件設置等等。但是因為各位的“折騰”,這個表會因為頻繁的嘗試安裝/禁用各種插件變得臃腫不堪。

(本站數據庫259Mwp_options占用了248M)十分影響數據庫運行速度。因危險性較大,我不做過多闡述
如果發現自己的博客中這個表也和小殘博客一樣這個表異常的大那么可以先備份數據庫然后在清空wp_options表
最后本地搭建一個wordpress然后設置的網站標題后臺密碼插件設置后臺設置全部設置為和自己的博客一模一樣然后在導入wp_options表即可。
除非萬不得已最好不要這樣做,小殘我也是被逼無奈。。。
清理wp_postmeta
可能有很多東西你想保存到你的一些日志中 — 你寫日志時候的心情 ,你當時聽的歌曲,你所處的地理位置,一些相關日志的列表,特定為搜索引擎指定日志信息等等。所以這些東西都會保存到wp_postmeta 這個表中。關于這個表的清理可以借助插件WP-Cleanup完成。執行下列相關的MySQL指令則可以進一步的清理出無用的數據
復制代碼
代碼如下: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';

最終優化結果如上圖從259M減少到14.4M,其中大部分占用的都拜wp_postmeta所賜
WordPress數據庫相關的清理工作到此就告一段落,其他關于WordPress數據庫的優化技巧也還有很多,牽扯到了系統底層方面以及需要借助插件完成。
關于這篇文章除了優化清理wp_options以為所涉及到的SQL語句基本不會出現什么問題
但是永遠記住一句話:做好備份!只有做好備份工作才可以有備無患。
本文來自小殘博客
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。