WordPress 資料庫優化教學:5 個步驟解決網站變慢問題
WordPress 網站變慢?從診斷 wp_posts、wp_options 等資料表大小開始,學習如何清理文章修訂版本、暫存資料與外掛殘留,有效執行資料庫優化,提升網站效能與載入速度。
WordPress 資料庫為什麼越跑越慢?常見肥大原因診斷
當你感覺網站後臺操作遲鈍、前臺頁面載入時間拉長,資料庫往往是首要檢查的關鍵環節。WordPress 資料庫負責儲存所有文章、留言、設定與暫存資料,隨著網站運行,無用的冗餘資料會不斷累積,直接拖慢 SQL 查詢速度並增加伺服器負載。效能問題的根源,常是少數資料行(例如大量的 autoload 設定)佔用了不成比例的空間,而非資料表總筆數。常見的「頭號戰犯」包括:無限增長的文章修訂版本 (Post Revisions)、過期的暫存資料 (Transients)、垃圾留言、已停用外掛的殘留資料表,以及過度膨脹的 wp_options 資料表。
開始清理前:備份與資料庫健康檢查
任何資料庫清理操作都具有不可逆的風險,執行前的備份是保護網站資產的唯一安全網。這個步驟的目的,是先精準定位問題源頭,再決定後續優化方向。
強制備份: 登入你的主機控制檯(如 cPanel)或使用 BackupBuddy、UpdraftPlus 等外掛,執行一次完整的資料庫備份並下載保存。
健康診斷(找出肥大資料表):
- 方法一(圖形化介面 - phpMyAdmin): 從主機控制檯進入 phpMyAdmin,選擇你的 WordPress 資料庫。在「結構」分頁下,點擊「大小」欄位進行排序,可以快速識別出佔用空間最大的資料表(通常是
wp_posts、wp_postmeta或wp_options)。 - 方法二(SQL 語法): 在 phpMyAdmin 的「SQL」分頁中,貼上以下指令,將列出所有資料表的大小(以 MB 為單位):
SELECT table_name AS "資料表", ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "大小 (MB)" FROM information_schema.TABLES WHERE table_schema = "你的資料庫名稱" ORDER BY (data_length + index_length) DESC;
核心清理步驟:5 個關鍵操作
確認問題後,可以按順序執行以下五個核心清理步驟。建議逐項進行,每完成一步都可觀察資料表大小的變化。
- 清理文章修訂版本: WordPress 預設會儲存每次編輯的歷史版本,長期累積會導致
wp_posts資料表急遽膨脹。你可以透過 WP-Optimize 等外掛一鍵清理,或在wp-config.php中加入define('WP_POST_REVISIONS', 5);來限制僅保留最新 5 個版本,從源頭減少產生量。 - 清除暫存資料 (Transients): Transients 是 WordPress 用於暫時儲存資料(例如外掛設定、API 回應)的機制,過期資料若未被及時刪除,同樣會佔用空間。可使用「Transients Manager」外掛查看與刪除,或透過 phpMyAdmin 執行 SQL 語句刪除:
DELETE FROM wp_options WHERE option_name LIKE '%_transient_%'; - 移除垃圾留言與已刪除項目: 進入後臺「留言」區塊,點選「清空垃圾留言」。同時,檢查「文章」與「頁面」的「回收站」,將不需要的項目永久刪除。
- 清理外掛殘留資料: 停用或刪除外掛後,部分外掛會遺留自己的資料表。可參考外掛文件說明,或使用 WP-Optimize 的「資料庫清理」功能來檢查並安全移除這些未使用的資料表。
- 優化資料表: 此操作會重新組織資料表結構、回收被標記為刪除的空間,並重建索引,有助於提升查詢效率。在 phpMyAdmin 中勾選所有資料表,從下方功能選單選擇「優化資料表」即可執行。
進階優化:處理 wp_options 資料表肥大問題
如果診斷發現 wp_options 資料表異常龐大,這是一個需要特別關注的信號。問題核心通常在於「autoload」屬性。
聚焦 Autoload: wp_options 中儲存了 WordPress 核心、外掛與主題的設定。其中,autoload 欄位設為 yes 的選項,會在每個頁面載入時被自動讀取。若大量外掛或笨重的設定項被標記為 autoload,將嚴重拖慢全站速度。
檢查 Autoload 資料量: 執行以下 SQL 語句,查詢所有 autoload 資料的總大小:
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';
設定參考值: 根據公開技術建議,autoload 總大小的理想值應控制在約 800KB 以內。此數值為常見參考標準,實際狀況需結合主機環境判斷。
處理步驟: 查詢結果若遠超參考值,可進一步用 SQL 找出哪些選項佔用最多:SELECT option_name, LENGTH(option_value) as size FROM wp_options WHERE autoload = 'yes' ORDER BY size DESC LIMIT 20; 檢視結果,找出來自已停用或不必要外掛的選項,考慮清理或將其 autoload 屬性改為 no(此操作需謹慎,建議先諮詢開發者或查閱外掛文件)。
工具實戰:使用 WP-Optimize 一鍵優化
對於不熟悉 SQL 操作的站長,使用成熟可靠的外掛是簡化流程的有效方式。WP-Optimize 是一個功能整合且評價良好的選擇。
安裝與設定: 從 WordPress 後臺外掛庫搜尋並安裝「WP-Optimize」。安裝後可在設定頁面中,依需求勾選要清理的項目(如文章修訂、暫存資料、垃圾留言等),並可設定自動清理的排程(例如每月一次)。
功能對應: 該外掛的核心資料庫清理功能,幾乎完全對應上文提到的「核心清理步驟」。它會自動處理修訂版本、暫存資料、垃圾留言的刪除,並可一鍵執行所有資料表的優化操作。
附加價值: 除了資料庫清理,WP-Optimize 還整合了圖片壓縮、頁面快取等功能,從多個層面協助提升網站整體效能。
重要提醒: 即使使用一鍵工具,事前備份與瞭解其運作原理仍然必要。建議首次使用時,先仔細檢查外掛預設勾選的項目,確認符合你的需求後再執行。
清理後:驗證效果與預防措施
完成優化後,需要驗證成果並建立長期維護習慣,防止資料庫再次快速膨脹。
- 再次檢查資料表大小: 重複執行「資料庫健康檢查」的步驟,對比清理前後各主要資料表(尤其是
wp_posts、wp_options)的大小變化。 - 監控網站前臺速度: 使用 GTmetrix、Google PageSpeed Insights 等工具,觀察頁面載入時間的變化趨勢。效能的提升是一個綜合結果,資料庫優化是其中重要一環。
- 設定定期維護: 對於更新頻繁的網站,建議每 1-3 個月執行一次資料庫清理。可以利用 WP-Optimize 設定自動化排程,或每月手動快速檢查一次主要資料表大小。
- 從源頭減量: 在
wp-config.php中限制文章修訂版本數量;定期審視已安裝的外掛,停用或刪除不需要的;避免安裝功能重疊的外掛,以減少潛在的資料庫負擔。
資料庫優化是網站整體優化工作中不可或缺的一環。若想更全面地瞭解如何從速度、SEO 與使用者體驗等多個面向提升網站效能,可以參考這篇《網站優化完整指南:速度、SEO、Core Web Vitals 三大支柱(2026)》。而當你發現資料庫查詢速度改善後,頁面載入的關鍵瓶頸可能轉移至前端渲染,例如最大內容繪製時間(LCP),此時便可參閱《LCP優化怎麼做?從診斷最大內容渲染到縮短首屏等待》進行下一階段的優化。
優化 WordPress 資料庫前,最重要的步驟是什麼?
務必先完整備份資料庫。因為資料庫清理(如刪除文章修訂、暫存資料)是不可逆的操作,備份能確保在操作失誤或發生問題時,可以還原網站。
我的 WordPress 後臺變得很慢,一定是資料庫的問題嗎?
資料庫肥大是常見主因之一,但非唯一原因。其他可能包括主機效能不足、PHP 版本過舊、外掛衝突或主題問題。建議先檢查資料庫各資料表大小,並執行基礎優化,再排查其他因素。
使用 WP-Optimize 外掛安全嗎?會不會誤刪重要資料?
WP-Optimize 是廣泛使用且評價良好的外掛,相對安全。它主要清理 WordPress 產生的冗餘資料(如修訂、暫存)。使用前仍建議手動備份,並在外掛設定中仔細檢查勾選的項目,確保不會刪除你可能需要保留的內容。
「wp_options」資料表為什麼那麼大?「autoload」又是什麼?
wp_options 存儲 WordPress 核心、外掛和主題的設定。其中「autoload」設為 yes 的選項,會在每個頁面載入時被讀取。若外掛存入大量此類選項,或選項本身未及時清理,會導致該資料表異常肥大,拖慢全站速度。
清理資料庫後,網站速度一定會變快嗎?
清理資料庫是改善效能的重要一步,尤其當資料庫確實存在大量冗餘資料時。然而,最終效果還取決於主機效能、網站架構、外掛數量等多重因素。建議清理後,使用測速工具(如 GTmetrix)進行前後對比觀察。
多久應該執行一次 WordPress 資料庫優化?
視網站活躍程度而定。對於更新頻繁的網站,建議每 1-3 個月檢查並清理一次。你可以利用 WP-Optimize 等外掛設定自動清理排程,或每月手動快速檢查主要資料表大小。
除了用外掛,有沒有手動清理資料庫的方法?
有。你可以透過主機提供的 phpMyAdmin 登入資料庫,手動執行 SQL 語句來刪除特定類型的資料(如舊的文章修訂),或優化資料表。但手動操作需要一定的技術知識,務必在充分了解 SQL 指令與資料庫結構下進行,並提前備份。
Contact Form 7:WordPress 聯絡表單設定與排錯
contact form 7教學(contact form plugin)是什麼、怎麼做?Contact Form 7 是一款免費的 WordPress 聯絡表單外掛,也是許多網站管理者建立基本溝通管道的起點。
elementor教學:新手用頁面編輯器做WordPress頁面
這份elementor教學帶你了解Elementor頁面編輯器的定位、安裝設定、常用小工具與頁面製作流程,並整理免費版與Pro版差異、適用情境、效能注意事項和常見錯誤排除,適合想用WordPress快速完成首頁、服務頁或活動頁的新手。
WooCommerce 優惠券設定教學:折扣類型與使用限制完整操作指南
深入教學 WooCommerce 優惠券設定的每一步操作,從後臺啟用功能、建立優惠券代碼,到設定百分比折扣、固定金額折扣、免運費與使用限制。掌握 2026 年 WooCommerce 最新促銷設定技巧,輕鬆規劃限時優惠活動,有效管理訂單折扣成本。