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

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

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

(本站數(shù)據(jù)庫(kù)259Mwp_options占用了248M)十分影響數(shù)據(jù)庫(kù)運(yùn)行速度。因危險(xiǎn)性較大,我不做過(guò)多闡述
如果發(fā)現(xiàn)自己的博客中這個(gè)表也和小殘博客一樣這個(gè)表異常的大那么可以先備份數(shù)據(jù)庫(kù)然后在清空wp_options表
最后本地搭建一個(gè)wordpress然后設(shè)置的網(wǎng)站標(biāo)題后臺(tái)密碼插件設(shè)置后臺(tái)設(shè)置全部設(shè)置為和自己的博客一模一樣然后在導(dǎo)入wp_options表即可。
除非萬(wàn)不得已最好不要這樣做,小殘我也是被逼無(wú)奈。。。
清理wp_postmeta
可能有很多東西你想保存到你的一些日志中 — 你寫(xiě)日志時(shí)候的心情 ,你當(dāng)時(shí)聽(tīng)的歌曲,你所處的地理位置,一些相關(guān)日志的列表,特定為搜索引擎指定日志信息等等。所以這些東西都會(huì)保存到wp_postmeta 這個(gè)表中。關(guān)于這個(gè)表的清理可以借助插件WP-Cleanup完成。執(zhí)行下列相關(guān)的MySQL指令則可以進(jìn)一步的清理出無(wú)用的數(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ù)庫(kù)相關(guān)的清理工作到此就告一段落,其他關(guān)于WordPress數(shù)據(jù)庫(kù)的優(yōu)化技巧也還有很多,牽扯到了系統(tǒng)底層方面以及需要借助插件完成。
關(guān)于這篇文章除了優(yōu)化清理wp_options以為所涉及到的SQL語(yǔ)句基本不會(huì)出現(xiàn)什么問(wèn)題
但是永遠(yuǎn)記住一句話(huà):做好備份!只有做好備份工作才可以有備無(wú)患。
本文來(lái)自小殘博客
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。