Advanced Database Cleaner – 清理資料庫、提升網站速度的最佳化外掛

在網站最佳化、提升 WordPress 網站效能的討論中,清除冗餘資料是管理、維護網站中後期能夠確實提升網站存取速度的關鍵。

架設網站的時間越久,資料庫中儲存的東西就會越來越多,這些多餘的資料可能來自於安裝、測試後移除的外掛,也可能是長期撰寫文章、留言,與訪客互動遺留下來的冗餘資料。

當資料庫越長越大,表格中的資料筆數越來越多,就會讓檢索資料的速度開始變慢,這都是架設動態網站、網站後台管理時會遭遇到的問題。

這個議題我們曾經在「提升 WordPress 網站效能的 10 大關鍵」一文中提及,我們接著來深入介紹能夠用來清理資料庫、提升網站速度的實用最佳化外掛 Advance Database Cleaner。

越長越大的資料庫

隨著時間過去,WordPress 作為內容管理網站,其核心功能會持續在資料庫中產生許多垃圾、冗餘資料,因為這些資料不會再被使用,也隨著時間失去利用價值。包含:

  • 垃圾留言
  • 過期頁面、文章版本
  • 不再與任何項目關聯的內容中繼資料 (orphaned post metadata)
  • 自動引用通知 (pingbacks)
  • 引用通知 (trackbacks)
  • 過期的暫存資料等

多數的第三方外掛、佈景主題編輯器,在安裝後會新增自訂的資料庫表格,並將相關設定儲存在 WP Options 表格中。

也因此,當網站經營越久、資料庫大小逐漸成長,觀察到管理後台存取、載入速度開始變慢的時候,就應該要思考對資料庫進行維護、清理了。

傳統上,要對資料庫進行維護、清理,是需要具備資料庫管理的進階知識的,需要透過 phpMyAdmin 等資料庫管理工具存取資料庫,並且對各個表格的資料結構有基礎理解,才能找出冗餘的垃圾資料進而移除這些資料。

一旦錯誤移除了系統在使用的資料,也會造成資料毀損系統無法正常運作的問題。

好在 WordPress 生態圈中外掛廠商們已經提供了這類實用的工具了,Advanced Database Cleaner 是其中評價最好、廣受歡迎的資料庫清理外掛工具。

Advanced Database Cleaner 外掛

Advanced Database Cleaner 外掛在這個資料庫清理的類別頗受歡迎,超過十萬的安裝啟用數、超過 1,350 的五星評價,開發者每隔一段時間都會發布更新版本。

透過 Advanced Database Cleaner 外掛,網站管理者可以快速了解資料庫目前的大小、表格數量、Options 表格中的資料筆數,以及排程的定期任務 (cron tasks) 數量。

advanced-database-cleaner-overview-settings

以上圖為例,我們可以知道目前這個網站的資料庫大小為 94 MB、資料表格數量為 184、Options 表格中共有 723 筆資料,而排程的定期任務則有 29 個。

外掛中也提供相對應的功能,能夠協助檢視這些資料,並提供使用者清理冗餘數據的能力。

一般數據清理

在前面章節提到的冗餘資料,例如垃圾留言、文章歷史版本、引用通知、過期的暫存資料等,都可以使用外掛第一個頁籤 General clean-up 提供的功能進行檢查與清理。

advanced database cleaner general clean up

從上圖可以看出,目前網站中有「超級多」各式內容的歷史版本紀錄,因為過去這段時間寫了不少文章,更新了 SureCart 商品資訊、結帳表單資訊,使用 Fluent Forms 設計了「聯絡 Quants Note」表單、使用 Kadence 表格功能製作了諮詢服務頁面與網站上各種吸睛的設計。

文章回顧 -「SureCart – 不會拖慢網站效能的 WordPress 電子商務、購物車方案」。

沒錯,所有我們維護網站的紀錄,除非有使用網站最佳化外掛 (例如 Clearfy) 額外進行功能限制,系統都會將歷史版本保存下來,久而久之就會長成如圖所顯示的這樣。

文章回顧 -「14 天網站最佳化衝刺實作 – Clearfy v.s Heavy Theme」。

其他的例如垃圾留言,我們使用 Cloudflare Turnstile 的人機驗證功能之後,就在也沒有這方面的困擾了。

而如果曾經使用過 CPT 自訂內容類型,或是有利用到 CPT 功能的第三方外掛,在解除安裝之後通常會留下「不再與任何項目關聯的中繼資料 (Orphaned meta)」。

這些都是例行可以安全移除的冗餘資料,只要確認這些歷史內容版本是不需要的,直接選擇 Clean Action,並按下 Apply 按鈕即可移除多餘的資料。

別忘了,對資料庫進行修改之前,記得先做個備份唷!可以參考「進行網站功能測試時所需要的規劃與準備」中的說明。

在這個頁籤中,還提供了可以對這些資料進行定期清理的自動排程功能。可以設定執行的頻率為單次、每小時、一天兩次、每天一次、每周一次、每月一次,相當彈性實用。

advanced-database-cleaner-cleanup-schedule

內容更新頻率高的網站,可以設定為每天執行,如果不是相當活躍使用的網站,則可以設定為每月執行一次即可。當然也可以停用 (Inactive) 排程設定,需要的時候手動執行即可。

對資料庫表格進行最佳化

如果想要檢查是否有冗餘的資料庫表格,例如曾經安裝、測試後不再使用的外掛,雖然已經移除了也有可能有沒刪除乾淨的表格數據,可以使用下一個頁籤 Tables 提供的功能進行外掛關聯掃描、建立索引,並清理不需要的表格。

advanced-database-cleaner-optimize-database-tables

對大多數管理者來說,要分辨哪些資料庫表格為哪些外掛、佈景主題使用是相當不容易的事,我們可以利用這個頁籤中的 Scan tables 按鈕,讓 Advanced Database Cleaner 外掛先幫我們建立資料庫表格與外掛、佈景主題之間的關聯。

執行完畢後就能在 Belongs to 欄位下看到對應的外掛、佈景主題名稱與描述。

當然,自動掃描的準確性雖然不低但還是有可能會有誤判的結果,這時候我們可以使用 Bulk Actions 功能,將可以辨識的表格關聯設定為正確的外掛、佈景主題。

Tables 頁籤下的 Bulk Actions 功能提供了:

  • 掃描選擇的表格 (Scan selected tables)
  • 修改分類關聯 (Edit categorization)
  • 最佳化 (Optimize)
  • 修復 (Repair)
  • 將數據列清空 (Empty rows)
  • 刪除 (Delete)

可以根據需求決定如何處理相關的資料庫表格。

有時候我們可能不太清楚某些表格的用途與目的,可以將表格名稱使用 Google 搜尋查看是否能找到更多的說明資訊以協助判斷要如何處理。如果真的沒把握,建議就留著不理他就好,未來如果有預算可以找到這方面的專家協助處理再說。

在掃描、分析、判斷後,如果確認是「不再與任何項目關聯 (Orphan!)」的表格,未來也不會再使用這個外掛或佈景主題,我們就可以將相關資料庫表格刪除了!

同樣地,這個功能一樣可以設定自動排程,對於進階的管理者來說相當方便。

清理 Options 表格

第三個頁籤是 Options 表格的維護清理。幾乎所有外掛、佈景主題編輯器,都會將相關設定儲存在 WP Options 表格中。

advanced-database-cleaner-clean-options-table

從上圖可以看到現在 Options 表格中的資料有 612 筆,這還是歷經一次大清理後隔了幾個月的數字。而單純安裝 WordPress 核心版本時,這個表格中的資料數大約會是 100 多筆。

也就是說,在安裝了許多外掛、佈景主題之後,Options 表格就會被陸續新增了這些資料筆數。

與 Tables 頁籤中的功能相同,我們可以按下 Scan options 按鈕,讓 Advanced Database Cleaner 外掛先幫我們建立 Options 表格與外掛、佈景主題之間的關聯。

執行完畢後同樣可以在 Belongs to 欄位下看到對應的外掛、佈景主題名稱與描述。

在 Options 表格中的紀錄有個 auto-load 欄位,標示為 yes 代表這些設定會在頁面載入時載入到記憶體中。雖然可以利用快取機制減輕負擔,但是當相關設定內容太多時,需要載入記憶體的資料一樣會耗用過多的資源。

這也是為什麼在進行數據清理的時候,我們一樣會查看 Options 表格並且將「不再與任何項目關聯 (Orphan!)」的資料刪除掉。

Options 頁籤下的 Bulk Actions 功能提供了:

  • 掃描選擇的表格 (Scan selected tables)
  • 修改分類關聯 (Edit categorization)
  • 將 autoload 設為 yes (Set autoload to yes)
  • 將 autoload 設為 no (Set autoload to no)
  • 刪除 (Delete)

對於已經移除的外掛或佈景主題的資料,可以選擇將 autoload 設為 no 或是將數據直接刪除。

排程的定期任務 Cron Jobs

最後一個頁籤是 Cron Jobs,可以讓我們查看目前網站中已排程的定期任務有哪些。

advanced-database-cleaner-cron-jobs

部分的外掛、佈景主題在安裝後會安排定期任務的執行,有些是授權狀態的檢查、有的會定期清除不需要的資料,而多數電子郵件行銷工具則會利用這個功能來執行其自動化行銷、郵件寄送的排程任務。

然而,不少外掛、佈景主題在移除之後無法乾淨的將相關的資料、定期任務一併移除,所以我們就需要使用 Advanced Database Cleaner 外掛幫忙把不需要的定期任務 Cron Jobs 刪除掉。

Cron Jobs 頁籤下的 Bulk Actions 功能提供了:

  • 掃描選擇的表格 (Scan selected tables)
  • 修改分類關聯 (Edit categorization)
  • 刪除 (Delete)

結語

在經過上述的說明之後,我想大家對資料庫的清理與維護應該開始有一些概念了,透過 Advanced Database Cleaner 外掛的功能,我們能將平時 WordPress 最容易被忽略的資料庫進行最佳化。

這個功能或許不是初架站的站長們需要的,但是在架站初期 (對各種外掛、佈景主題測試後) 遺留下來的冗餘資料,時間久了,對網站效能的影響會越來越明顯。

Advanced Database Cleaner 外掛也有 Pro 付費版,大家不妨先試試免費版的功能,如果有需要看到資料庫表格的更多數據與細節,也可以考慮購入付費版。目前都有終生授權方案 (LTD),價格平易近人,長期架站的站長們可以認真考慮。

如果有什麼心得、想法或建議,也歡迎大家加入社團一起討論唷!

2 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *