WordPress速度優(yōu)化系列之 清理數(shù)據(jù)庫的方法
發(fā)布時間:2016-08-23 20:24:35 作者:小殘
我要評論

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

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

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

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

最終優(yōu)化結(jié)果如上圖從259M減少到14.4M,其中大部分占用的都拜wp_postmeta所賜
WordPress數(shù)據(jù)庫相關(guān)的清理工作到此就告一段落,其他關(guān)于WordPress數(shù)據(jù)庫的優(yōu)化技巧也還有很多,牽扯到了系統(tǒng)底層方面以及需要借助插件完成。
關(guān)于這篇文章除了優(yōu)化清理wp_options以為所涉及到的SQL語句基本不會出現(xiàn)什么問題
但是永遠(yuǎn)記住一句話:做好備份!只有做好備份工作才可以有備無患。
本文來自小殘博客
也就出現(xiàn)了今天這篇”WordPress速度優(yōu)化系列之“清理數(shù)據(jù)庫”,全部來源于之前對和邪社進(jìn)行優(yōu)化所得來的經(jīng)驗以及教訓(xùn),以后還有其他相關(guān)的文章。
通過上網(wǎng)搜索相關(guān)優(yōu)化技巧和個人經(jīng)驗,造福各位博主,于是就有了今天大家看到的WordPress優(yōu)化系列之“清理數(shù)據(jù)庫”。
既然是WordPress優(yōu)化系列,肯定有方方面面需要照顧到,比如選擇正確的插件,減少數(shù)據(jù)庫請求次數(shù),如果最大限度的提升加載速度等等,我會盡量把方方面面需要說明清楚的內(nèi)容都寫出來。今天就先講一下最容易也是最需要亟需解決的一個問題,那就是日益增長的數(shù)據(jù)庫問題。
剛接觸wordpress我對這方面的經(jīng)驗為零,完全的從零開始,甚至沒有接觸過linux或者是相關(guān)的一些技術(shù),比如Nginx(Apache)的優(yōu)化配置,數(shù)據(jù)庫(MySQL)的理論知識以及相關(guān)的配置等等等等。只因從一臺完全空白的服務(wù)器(僅有l(wèi)inux或者是Windows)到一個完整的WordPress博客是一個相當(dāng)“艱巨”的過程。而這篇文章提到的內(nèi)容肯定不可能非常完善,以后我會逐步的將其充實起來。

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

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

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

最終優(yōu)化結(jié)果如上圖從259M減少到14.4M,其中大部分占用的都拜wp_postmeta所賜
WordPress數(shù)據(jù)庫相關(guān)的清理工作到此就告一段落,其他關(guān)于WordPress數(shù)據(jù)庫的優(yōu)化技巧也還有很多,牽扯到了系統(tǒng)底層方面以及需要借助插件完成。
關(guān)于這篇文章除了優(yōu)化清理wp_options以為所涉及到的SQL語句基本不會出現(xiàn)什么問題
但是永遠(yuǎn)記住一句話:做好備份!只有做好備份工作才可以有備無患。
本文來自小殘博客
相關(guān)文章
CyberPanel安裝WordPress并配置偽靜態(tài)規(guī)則
下面教你如何在 CyberPanel安裝WordPress以及配置偽靜態(tài),需要的朋友可以參考下2023-12-27- 這篇文章主要介紹了wordpress無法安裝更新主題插件的解決辦法,需要的朋友可以參考下2020-12-27
WordPress必備數(shù)據(jù)庫SQL查詢語句整理
發(fā)現(xiàn)幾條比較實用的,適合 WordPress 實用的SQL語句。于是就趕緊收集分享出來了,需要的朋友可以參考下2017-09-23wordpress在安裝使用中出現(xiàn)404、403、500及502問題的分析與解決方法
wordpress是很多新手站長搭建個人博客最喜愛的程序,但是最近在使用WordPress的時候遇到了一些問題,所以想著將遇到問題總結(jié)分享出來,下面這篇文章主要給大家介紹了關(guān)于wo2017-08-11WordPress取消英文標(biāo)點符號自動替換中文標(biāo)點符號的優(yōu)雅方法
這篇文章主要介紹了WordPress取消英文標(biāo)點符號自動替換中文標(biāo)點符號的優(yōu)雅方法,需要的朋友可以參考下2017-04-04- 這篇文章主要給大家介紹了wordpress自定義上傳文件類型的方法,如WordPress默認(rèn)允許上傳 .exe 后綴名的可運行文件,那么我們怎么禁止用戶在WordPress后臺發(fā)表文章時上傳 .e2016-12-19
- 大家可能發(fā)現(xiàn)了當(dāng)實現(xiàn)了前端用戶中心,后臺控制面板就失去了作用,那么限制其他用戶進(jìn)入后臺控制面板就很有必要了!那么我們要怎么做呢?通過下面這篇文章分享的方法后,只2016-12-19
WordPress實現(xiàn)回復(fù)文章評論后發(fā)送郵件通知的功能
這篇文章主要介紹了WordPress實現(xiàn)回復(fù)文章評論后發(fā)送郵件通知的功能,涉及wordpress針對評論與郵件的相關(guān)操作技巧,需要的朋友可以參考下2016-10-11WordPress使用自定義文章類型實現(xiàn)任意模板的方法
這篇文章主要介紹了WordPress使用自定義文章類型實現(xiàn)任意模板的方法,可通過自定義文章類型來實現(xiàn)任意模版的使用,具有一定參考借鑒價值,需要的朋友可以參考下2016-10-11WordPress后臺地址被改導(dǎo)致無法登陸后臺的簡單解決方法
這篇文章主要介紹了WordPress后臺地址被改導(dǎo)致無法登陸后臺的簡單解決方法,簡單分析了后臺無法登陸的原因與相應(yīng)的解決方法,涉及針對wordpress配置項的簡單修改,需要的朋友2016-10-11