如何清理和優化您的 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 表中的自動加載數據
- 打開您的 CyberPanel 儀表板
- 從右側單擊 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 和自動加載的文件時,您將能夠提高數據庫性能。