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) 數量。
以上圖為例,我們可以知道目前這個網站的資料庫大小為 94 MB、資料表格數量為 184、Options 表格中共有 723 筆資料,而排程的定期任務則有 29 個。
外掛中也提供相對應的功能,能夠協助檢視這些資料,並提供使用者清理冗餘數據的能力。
一般數據清理
在前面章節提到的冗餘資料,例如垃圾留言、文章歷史版本、引用通知、過期的暫存資料等,都可以使用外掛第一個頁籤 General clean-up 提供的功能進行檢查與清理。
從上圖可以看出,目前網站中有「超級多」各式內容的歷史版本紀錄,因為過去這段時間寫了不少文章,更新了 SureCart 商品資訊、結帳表單資訊,使用 Fluent Forms 設計了「聯絡 Quants Note」表單、使用 Kadence 表格功能製作了諮詢服務頁面與網站上各種吸睛的設計。
沒錯,所有我們維護網站的紀錄,除非有使用網站最佳化外掛 (例如 Clearfy) 額外進行功能限制,系統都會將歷史版本保存下來,久而久之就會長成如圖所顯示的這樣。
其他的例如垃圾留言,我們使用 Cloudflare Turnstile 的人機驗證功能之後,就在也沒有這方面的困擾了。
而如果曾經使用過 CPT 自訂內容類型,或是有利用到 CPT 功能的第三方外掛,在解除安裝之後通常會留下「不再與任何項目關聯的中繼資料 (Orphaned meta)」。
這些都是例行可以安全移除的冗餘資料,只要確認這些歷史內容版本是不需要的,直接選擇 Clean Action,並按下 Apply 按鈕即可移除多餘的資料。
別忘了,對資料庫進行修改之前,記得先做個備份唷!可以參考「進行網站功能測試時所需要的規劃與準備」中的說明。
在這個頁籤中,還提供了可以對這些資料進行定期清理的自動排程功能。可以設定執行的頻率為單次、每小時、一天兩次、每天一次、每周一次、每月一次,相當彈性實用。
內容更新頻率高的網站,可以設定為每天執行,如果不是相當活躍使用的網站,則可以設定為每月執行一次即可。當然也可以停用 (Inactive) 排程設定,需要的時候手動執行即可。
對資料庫表格進行最佳化
如果想要檢查是否有冗餘的資料庫表格,例如曾經安裝、測試後不再使用的外掛,雖然已經移除了也有可能有沒刪除乾淨的表格數據,可以使用下一個頁籤 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 表格中。
從上圖可以看到現在 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 刪除掉。
Cron Jobs 頁籤下的 Bulk Actions 功能提供了:
- 掃描選擇的表格 (Scan selected tables)
- 修改分類關聯 (Edit categorization)
- 刪除 (Delete)
結語
在經過上述的說明之後,我想大家對資料庫的清理與維護應該開始有一些概念了,透過 Advanced Database Cleaner 外掛的功能,我們能將平時 WordPress 最容易被忽略的資料庫進行最佳化。
這個功能或許不是初架站的站長們需要的,但是在架站初期 (對各種外掛、佈景主題測試後) 遺留下來的冗餘資料,時間久了,對網站效能的影響會越來越明顯。
Advanced Database Cleaner 外掛也有 Pro 付費版,大家不妨先試試免費版的功能,如果有需要看到資料庫表格的更多數據與細節,也可以考慮購入付費版。目前都有終生授權方案 (LTD),價格平易近人,長期架站的站長們可以認真考慮。
如果有什麼心得、想法或建議,也歡迎大家加入社團一起討論唷!
嗯嗯嗯很有幫助💪
做過CPT的我有空也要來清一清垃圾
清理之前記得要做好備份唷 ^_^