神魂顛倒論壇logo

icon
首頁網頁 / 程式應用區PHP 與 MySQL 討論 → [Wordpress]WordPress 資料庫瘦身,超有效最佳化!

雷射溶脂 | 瘦小腹 | 植髮 | 眼袋 | 玻尿酸 | 電波拉皮 | Flash | 購物車 | Flash Player 11.2 | 豐胸 |

下一主題 上一主題


[Wordpress]WordPress 資料庫瘦身,超有效最佳化!


[Wordpress]WordPress 資料庫瘦身,超有效最佳化! 簡版






[Wordpress]WordPress 資料庫瘦身,超有效最佳化!

類型:
Wordpress



在新視窗檢視





當一個WordPress站台用久了,想必資料庫內也記錄了不少的東西,但並不是所有資料都一定需要存在的,再加上WordPress多版本功能的出現,造成資料庫內的無用資料又更多,我們是不是該來對站台資料庫最佳化一下了呢?基本上,這樣最佳化的動作可以不用常常處理,大概一年一次應該就很夠了,除非站台大到很誇張、資料庫大到很誇張,才需要立刻清理,否則備份下來的資料庫容量可是很可怕的。

想要最佳化資料庫,進入phpMyAdmin作業是最快最有效的方式,如果怕說弄錯的話,可以先將資料庫做好備份,在進行SQL的語法,就可以輕鬆搞定。那最佳化到底是要最佳化些什麼呢?其實WordPress資料庫會肥主要就是文章內容了,但這是有意義的東西,另外一個會肥的就是額外資訊、log紀錄基本資料,通常這些東西清理一下,可以幫資料庫瘦身三分之一。

接下來,我們會直接提供一些SQL語法,讓各位可以直接對自己站台資料庫進行資料庫的瘦身最佳化。目前整個站台中,如果你都沒有最佳化資料庫,那應該就是「多版本文章」所產生的資料,多版本的用途在於如果新版錯誤,我們可以還原到之前的狀態,就跟電腦內的還原點有些類似。但是這些一旦變多,很可能吃垮資料庫,一個站台流量就這麼大,如果每次備份資料都備了一些用不到的東西,這不是浪費了時間也浪費了流量呢?

【注意】進行以下動作之前,請您先備分資料庫,否則發生意外就只能哭哭了。

刪除多版本、自動儲存文章

當務之急,就是對WordPress站內的多版本文章、自動儲存文章做一個清理與最佳化。在這部分香腸推薦大家一個外掛WP-Optimize,這外掛安裝啟用後,勾選一下就可以一口氣清掉站台內無用的多版本文章以及自動儲存文章,同時也可清理為稽核、標籤為垃圾的留言,最後還可以執行最佳化語法,節省資料庫的使用空間,此外,搭配停用多版本語法,可以讓站台變得更輕盈。

清理外掛組態

有些外掛安裝後,會在資料庫寫入一些資料,方便未來外掛的使用,相同的,有些佈景也是會將佈景組態基本資料寫進資料庫,這些資料均寫入wp_options資料表內。大家若安裝不同的外掛,就會有不同的引數值,目前並沒有一種可根除的方式來刪除這些資料值(因為外掛移除並不表示完全從WordPress移除)。所以我們可以透過Clean Options外掛來幫我們看看wp_options內到底有哪些資料,我們可以透過最簡單的方式機這些資料移除。

刪除無用標籤或分類

在WordPress後台管理中,我們可以進入標籤或是分類管理堶情A查看標籤或是分類相關聯的文章數量,如果出現零的,表示沒有被使用,未來若也用不到,可以將該標籤或分類刪除,以減少不要的資料,也可以避免搜尋引擎爬尋這些頁面。不過須注意,不知道是WordPress統計的問題,有些標籤顯示0,但是點數位進去確有關聯到文章,所以刪除時大家需要多多注意。另外,有些標籤關聯文章顯示0的,很可能文章是在草稿狀態,所以刪除前要先注意一下喔!



在新視窗檢視



刪除WP Postview Plus人數統計

如果你跟香腸一樣,以前有安裝這個在WordPress中最多人使用的瀏覽人次統計外掛,但是後來卻移除掉的使用者,相信你編輯舊文章時,肯定會發現客製欄位內好像有這些統計數位,那是因為外掛使用了客製欄位來記錄每一篇文章的人數統計,但是外掛移除後,可能是我們沒解除安裝完全或是是外掛本身剛好漏掉了,結果才殘存在資料庫中。現在我們可以透過語法來將這些資料移除囉!下面語法會一句查詢,一句刪除,使用者可以先使用查詢,看看資料有沒有錯誤,沒錯的話再進行刪除動作。

查詢機械人瀏覽次數(bot_views)

SELECT * FROM `wp_postmeta` WHERE `meta_key` = ‘bot_views’

刪除機械人瀏覽次數

DELETE FROM `wp_postmeta` WHERE `meta_key` = ‘bot_views’

查詢瀏覽人次(views)

SELECT * FROM `wp_postmeta` WHERE `meta_key` = ‘views’

刪除瀏覽人次

DELETE FROM `wp_postmeta` WHERE `meta_key` = ‘views’

刪除All in One SEO Pack資料

如果有使用過 All in One SEO Pack的使用者,應該不難發現在客製欄位的部分應該也和WP Post Views Plus相同,也有儲存一些資料,假設有客製標題、客製摘要以及標籤的話,外掛移除後,這些資料還是會儲存在那邊,但實際上,WordPress並不會去使用那邊的資料,所以留?就變成沒用的資料了,所以我可以透過以下的方法,把資料清乾淨。



在新視窗檢視



查詢客製標題欄位資料(title)

SELECT * FROM `wp_postmeta` WHERE `meta_key` = ‘title’

刪除客製標題欄位資料

DELETE FROM `wp_postmeta` WHERE `meta_key` = ‘title’

查詢描述欄位資料(description)



SELECT * FROM `wp_postmeta` WHERE `meta_key` = ‘description’

刪除描述欄位資料

DELETE FROM `wp_postmeta` WHERE `meta_key` = ‘description’

查詢關鍵字欄位資料(keywords)

SELECT * FROM `wp_postmeta` WHERE `meta_key` = ‘keywords’

刪除關鍵字欄位資料

DELETE FROM `wp_postmeta` WHERE `meta_key` = ‘keywords’

刪除舊的客製文章名稱

若有用固定網址,並且有改過客製名稱,那在wp_postmeta資料表內就會有「_wp_old_slug」的資料值,這些只是舊資料的一個備份紀錄,印象中是假設有人輸入了舊的名稱,WordPress會自動匯入到新的名稱,只是我在wp_posts內有看到一個guid的欄位,所以搞到最後我也不太確定是哪一個才有公用。不過如果排除導向問題,那其實我們可以把這欄位資料值清理掉的。

查詢舊有名稱( _wp_old_slug)

SELECT * FROM `wp_postmeta` WHERE `meta_key` = ‘_wp_old_slug’

刪除舊有名稱

DELETE FROM `wp_postmeta` WHERE `meta_key` = ‘_wp_old_slug’

事實上,網路上還有資料是關於「_edit_last」、「_edit_lock」、「{{unknown}}」這三種的資料清理最佳化,依序是最後修改、鎖定編輯、不詳,這三者比較不清楚其真正用途,所以香腸在此並沒有特別說要清理這些資料,其實這邊兩者清理下去也可以解省很多空間,可是若遇到是要針對文章鎖住或是最後修改查看的話,可能就不適合做清理囉!

解決Akismet 留言稽核問題

如果有使用Akismet的人會發現在WordPress後臺可能會看到以下的錯誤資訊:

Akismet 偵測到一個問題。因伺服器或網路問題導致 Akismet 無法檢查111則迴響。它將會被留在稽核清單中並於1分鐘內自動重新檢查。



在新視窗檢視



解決方法是參考自WordPress中文指南,文章內提到可以到phypMyAdmin內搜尋,然後將照到的錯誤資訊進行刪除,不過若錯誤資料很多時,我們可以用SQL語法,一句語法直接清乾淨,就不用這麼多步驟囉!下面提供的語法一樣先查詢,先檢查沒發現搜尋錯誤的話,再動手刪除這些資料,問題即可解決。

查詢Akismet的錯誤資訊(akismet_error)

SELECT * FROM wp_commentmeta WHERE meta_key = ‘akismet_error’

刪除Akismet的錯誤資訊

DELETE FROM wp_commentmeta WHERE meta_key = ‘akismet_error’

刪除留言的歷史紀錄

WordPress留言機制中,有一個歷史紀錄,這個東西會記錄我們對該則留言的稽核、標籤為垃圾或是其它任何動作,可是當時間一久,這些資料其實就是屬於過期的log檔,定期刪除是必要的。刪除這些資料可以清理出一大半的資料庫空間,以下一樣透過SQL語法來進行DB的刪除與最佳化。教學方法來自殺氣,不過他那邊是一口氣把wp_commentmeta整個資料表內的資料清空(不是刪除)。可是,如果我們擔心有其它資料的話,我們可以只刪除akismet紀錄的部分而已(但其實基本上整張資料表都是Akismet的log)



在新視窗檢視



查詢是否有akismet的紀錄(akismet_%)

SELECT * FROM `wp_commentmeta` WHERE `meta_key` LIKE ‘akismet_%’

刪除和Akismet有關的紀錄

DELETE FROM `wp_commentmeta` WHERE `meta_key` LIKE ‘akismet_%’

基本上最佳化的部分就到這邊而已,以上有提供的語法,香腸自己都有對香腸炒魷魚進行瘦身的動作。以上方法對於有些人來說,或許不夠使用,因為每個外掛的設計方式不同,我也無法告知大家每一個外掛所使用的客製欄位是什麼?大家可以自行進入wp_postmeta資料表內查看有哪些特殊的值,可以利用SQL語法來做清理的動作!(不過請小心,下錯條件很可能整個資料庫都被清空)

經過以上的作業,本來資料庫在不壓縮的狀況下,基本資料是「22.1MB」,清理後剩「15.9MB」,整整少了6MB,可見得這些log基本資料有多麼的可怕。如果你是一個非常愛嘗鮮、使用各式各樣外掛的朋友,那你的資料庫可能還有一些額外掛的組態,比方說外掛自己新增的資料表,那就需要手動刪除了,目前WordPress標準預設只有11張資料表,超過肯定就是外掛的了,如果要刪除,請記得備分囉!

(轉自香腸炒魷魚)

想在手機查閱更多Wordpress資訊?免費下載【香港矽谷】Android App

在新視窗檢視







原文站台: Terence











在新視窗檢視

分享到Facebook





瘦小腹 | 回到頂部
Icon
※本處所提供的所有資源均由在網上搜集而來,若有侵權敬請告知。

※僅作為個人測試使用,測試完畢請於下載後24小時內將其刪除。

※敬請尊重智慧財產權,請購買正版有保障之商品,並請支持正版。

※本空間與本人將不對任何資源或內容負起任何相關法律責任。

下一主題 上一主題