如何清理和優化您的 wp_options 表和自動加載的數據

已發表: 2022-09-28

在本文中,您將學習如何清理 wp_options 表和自動加載的數據並顯著提高數據庫性能。 自動加載的數據可能會減慢並影響您的網站性能。

舊的大型 WordPress 網站上的自動加載設置很有可能遠遠大於必要的。 這也是以前使用過各種插件和主題或僅經過測試的網站的典型特徵。

由於查詢或自動加載的數據,您的 WordPress 網站可能需要比平時更長的時間來加載。 當我們提高數據庫性能時,我們經常忽略這個最重要的,即清理你的 wp_options 和自動加載的數據。

下面您將了解什麼是 wp_option 表,您的站點應該包含多少數據以及如何清理 wp_options 表和自動加載的數據。

目錄

什麼是 wp_options 表

對於您的 WordPress 網站,wp_options 數據庫存儲各種數據,包括:

  • 站點 URL、主頁 URL、默認類別、管理員電子郵件、時間格式和每頁帖子
  • 主題、小部件、插件的設置
  • 臨時緩存的數據和文件等

表中包含以下字段

WP OPTIONS 表中的 autoload 字段是需要了解的最重要的概念。 此字段的值可以是 YES 或 NO,帶有 YES 的 ROWS 將自動加載使用 wp load all 選項加載的所有網頁上的數據,並最終減慢您的網站速度。

什麼是自動加載數據?

顧名思義,自動加載數據是在您的 WordPress 網站頁面加載的每個頁面上自動加載的數據。 如果 wp_options 數據庫有大量自動加載的數據,WordPress 網站可能會遇到問題。

儘管理想情況下每個插件都應該在每個頁面上加載其數據,但對於開發人員來說,自動加載參數默認設置為“yes”。 如果 wp_options 數據庫有大量自動加載的數據,WordPress 網站可能會遇到問題。

有多少數據是過多的自動加載數據?

這應該在 300KB - 1MB 之間。 如果您達到 3-5 MB 或更大的範圍,則可能有一些可以優化或取消自動加載的內容。 任何大於 10 MB 的內容都需要立即處理。

什麼導致自動加載數據

插件或主題作者將數據加載到 wp_options 表中,而不是使用他們自己的表。 一些開發人員喜歡不創建新表的插件。 但是,WP 選項並非旨在處理數千行。

wp 選項表仍然包含已從 WordPress 網站刪除的插件或主題的選項。 這可能導致查詢不需要的自動加載數據。 儘管自動加載的選項可能有好處,但它們也可能是有害的。 有些插件在停用或從 WordPress 中刪除時不會清除其自動加載選項,有些插件實際上並不需要自動加載所有設置。

如果您有超過推薦的自動加載數據,那麼肯定需要清理 wp_options 表中所有自動加載的數據。 此外,建議您努力減少 wp_options 表中的記錄數。 在刪除任何數據之前,請始終創建數據庫備份。 如果您對自己做這件事沒有信心,我們通常建議您聘請 WordPress 開發人員。

當數據實際上應該設置為“否”時,插件正在自動加載數據。

如何檢查 wp_options 表中的自動加載數據

  • 打開您的 Cyber​​Panel 儀表板
  • 從右側單擊 WordPress
  • 選擇列表 WordPress
  • 單擊 WordPress 列表後,您將看到已部署的 WordPress 網站。 選擇要優化數據庫的站點。
  • 選擇 WordPress 站點後,單擊數據庫選項卡,
  • 查看您的數據庫名稱,現在這是您選擇的 WordPress 站點的數據庫。 我們將通過 PHPMyAdmin 訪問這個數據庫並優化 wp_options 表。

看到您的數據庫名稱後

  • 單擊左側的數據庫
  • 選擇 PHPMYADMIN
  • 從左側單擊您的數據庫名稱
  • 從左側菜單中選擇 wp_options
  • 從頂部菜單中選擇 SQL
  • 添加以下 SQL 查詢並單擊 GO
 SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes';

在這裡,您將看到以 KB 為單位的總自動加載大小,如果它超過 3000KB(這意味著超過 2MB),那麼是時候尋找數據庫優化了。

您還可以添加更長的查詢來按大小檢查前十個條目

SELECT 'autoloaded data in KiB' as name, ROUND(SUM(LENGTH(option_value))/ 1024) as value FROM wp_options WHERE autoload='yes' UNION SELECT 'autoloaded data count', count(*) FROM wp_options WHERE autoload='yes' UNION (SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 10)

如您在圖像中看到的,上面的查詢結果顯示了頂部鍵。

這是您可以用來按長度列出前 10 個值的 SQL 命令:

 SELECT option_name, length(option_value) AS option_value_length FROM wp_options WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 1

如您所見,option_name rewrite_rules 的最大長度為 9153,可以檢查該值是否可以優化或刪除。

如何清理 wp_options 表

就像我們之前所做的那樣,您需要登錄到 phpMyAdmin。 單擊左側的數據庫,然後單擊 SQL 選項卡。 然後輸入以下命令並點擊“Go”。

 SELECT * FROM `wp_options` WHERE `autoload` = 'yes'

如果您的 WordPress 站點使用 wp_ 以外的前綴,您可能需要修改上面的查詢。 wp 選項表的整套自動加載數據將以這種方式顯示給您。

始終閱讀插件開發人員的文檔,因為可能有一種方法可以清理任何剩餘的表。 在這種情況下,重新安裝插件,選擇其自動清理選項,然後正確刪除它有時可能更安全、更簡單。 不過,我們將演示如何手動清除表格。

當我們滾動瀏覽這些行時,我們注意到該站點不再使用或已安裝的各種插件。 我們只是將其用作示例,但在此示例中,我們看到了很多狀態行。 在被質疑的網站上,狀態已不再使用。

使用此命令

SELECT * FROM `wp_options` WHERE `autoload` = 'yes' AND `option_name` LIKE '%status%'
  • 您可以更改帶有文件名的結束詞,例如,將狀態轉換為電子郵件以清除它

清除瞬態

wp_options 表是 WordPress 保存臨時記錄的地方,除非您使用對象緩存。 這些通常有一個到期日期,應該隨著時間的推移而消失。 不過,情況並非總是如此。 在我們看到的幾個數據庫中發現了數千條過時的臨時記錄。 記住瞬態並不總是自動加載也很重要。 要確定是否有任何自動加載的臨時數據,您可以執行類似於以下的查詢。

 SELECT * FROM `wp_options` WHERE `autoload` = 'yes' AND `option_name` LIKE '%transient%'

同樣,您可以使用刪除查詢來清除不再需要的瞬態。

檢查網站

此外,在從表中刪除條目之前,請嘗試創建完整數據庫的備份。 刪除數據庫內容後,在前端測試網站同樣重要。 驗證您的網站是否運行良好並且不會干擾任何插件或主題功能。 根據您從 wp_options 表中刪除的條目數量,站點實際加載的速度會有所不同。 即使您應該刪除數百條記錄以進行清理,也可能沒有太大區別。 然而,數以百萬計的條目被刪除將顯著減慢網站加載速度。

結論

由於查詢或自動加載的數據,您的 WordPress 網站可能需要比平時更長的時間來加載。 我們使用不同的方法和命令來清除額外或自動加載的數據。 當您清理 wp_tables 和自動加載的文件時,您將能夠提高數據庫性能。