雖然 WordPress 網站的所有元件都很重要,但資料庫可以說是關鍵所在。實際上,網站的所有資訊都是在這裡儲存和訪問的。因此,WordPress 資料庫優化遊戲必須完美。
一個存在臃腫和效能問題的資料庫會降低網站的執行速度,影響搜尋排名。此外,還可能影響整體使用者體驗(UX)。反過來,這會影響您的流量資料,並影響您在搜尋結果中的排名(還有其他問題)。
在本教學中,我們將從多個角度對 WordPress 資料庫進行優化。我們將討論你會看到的一般結構,以及許多可以利用的優化技術。我們還會提到一些工具和服務,它們可以幫助你保持資料庫正常執行。
如何瞭解 WordPress 資料庫結構
簡而言之,WordPress 資料庫是網站的支柱。它幾乎容納了所有內容、使用者資料、設定等。關於 WordPress,資料庫 “表 “負責儲存特定型別的資訊。
該平臺使用 MySQL 或 MariaDB 資料庫管理系統,您可以使用 phpmyAdmin 或 Adminer 等工具訪問資料庫:
使用 phpMyAdmin 訪問 WordPress 資料庫
例如, wp_posts
表包含帖子和頁面,而 wp_users
則儲存網站使用者的資料。稍後我們將詳細介紹其中的一些表。
安裝時,WordPress 會建立一組預設表格,以涵蓋所有典型的使用情況。不過,外掛、主題和安裝也可以建立表格來儲存特定的相關資料。
這種模組化方法在很多方面都非常出色,因為它可以實現廣泛的功能。但反過來說,過多的表格(以及管理不善)也會導致臃腫。
出於以下兩個原因,瞭解 WordPress 的資料庫結構至關重要:
- 效能。良好的資料庫組織可以讓您更快地檢索資料,這將直接影響載入時間和效能。
- 維護。瞭解哪些表格與網站的不同部分相對應,有助於網站維護。例如,如果某個外掛出現問題,您可以對其相關的表進行故障排除。
定期清理和優化資料庫的表格可以防止它們變得過大和臃腫。正如我們所指出的,效能影響可能會對您產生負面影響。
WordPress 專用表
所有型別的網站都使用資料庫,而不僅僅是 WordPress。該平臺有自己的資料庫表型別和角色,如果您想優化它們,就必須充分了解它們。
雖然我們不會在這裡介紹所有這些表,但您會比其他表更多地接觸到某些表:
-
wp_options
。該表儲存全站設定,可以說是資料庫中訪問量最大的表之一。您需要通過良好的優化使這個表保持精簡。
wp_postmeta
。您的帖子後設資料就存放在這裡。隨著網站的發展,這將成為資料庫中最大的表之一。 wp_users
和wp_usermeta
。與網站使用者及其後設資料相關的所有資訊都存放在這兩個表中。在極少數情況下,如果您被鎖定在 WordPress 之外,您可能需要在這裡修改密碼。
請記住,您新增到網站上的每一個額外外掛或主題都可能會修改這個結構。不過,主題或外掛移除其中一個表格的情況很少見。
即便如此,您還是應該定期檢視並瞭解這些潛在的變化。這是維護優化資料庫的關鍵,它能支援而不是阻礙網站的效能。
為什麼大多數網站都需要優化 WordPress 資料庫?
優化 WordPress 資料庫不僅是一種良好的做法,而且對於大多數希望提供無縫體驗的網站來說也是必要的。您的資料庫是網站所有重要資料的集中儲存地。它的健康狀況直接影響網站的效能、速度和可靠性。
因此,定期對 WordPress 資料庫進行優化應該成為工作流程的主要內容,這有兩個一般原因:
- 提高網站速度和效能。隨著時間的推移,您的 WordPress 資料庫會包含一些不必要或冗餘的資料,例如瞬時選項、文章修訂版本、垃圾評論或過時的草稿。這種臃腫會降低資訊檢索速度。
- 改善使用者體驗。使用者還希望獲得流暢、快速的瀏覽體驗。優化良好的資料庫可加快頁面載入速度,提高資料處理效率。簡而言之,每一次網站互動都依賴於資料庫查詢。更高的效率帶來更好的使用者體驗。
還有一些更高階的原因需要確保優化資料庫。例如,未經優化的資料庫會給伺服器帶來額外的壓力,因為它需要更加努力地查詢和提供資料。如果您使用的是資源有限的共享主機,這將產生嚴重影響。
此外,隨著網站的增長,資料庫也會隨之增長。雖然一開始您可能執行一個小的、可管理的系統,但它的複雜性會迅速增加。通過定期優化,您可以確保資料庫能夠在不影響效能的情況下處理網站的擴充套件。
簡而言之,WordPress 資料庫優化將提高響應時間。即使是幾秒鐘的載入延遲也會導致跳出率增加和流量損失,這對您的搜尋排名來說可不是什麼好訊息。
如何進行定期維護和清理
如果您定期清理和維護 WordPress 資料庫,那麼您就擁有了保持網站儘可能平穩執行的最佳方法之一。然而,隨著時間的推移,資料庫可能會被不必要的資料充斥,因此定期和一致的工作流程非常重要。
此外,您還應該以最佳方式使用您所掌握的所有工具和服務。好訊息是,WordPress 提供了許多維護資料庫的方法。
一個外掛會有無數種優化資料庫的方法。WP-Optimize 就是一個很受歡迎的解決方案。還有其他一些外掛,但這個外掛在 WordPress.org 上的評分和評論都很高,而且是免費的,還會定期更新。
WP-Optimize
我們將在整個文章中展示如何使用該外掛優化 WordPress 資料庫,但您也可以將這些說明移植到您選擇的外掛中。
接下來的幾節將詳細介紹這一點,我們將介紹手動方法和使用 WP-Optimize。不過,首先讓我們來介紹一些優化前的工作。
優化前的準備工作
在進入資料庫之前,有一些簡單的任務需要完成。首先,你應該對網站和資料庫進行完整備份。如果發生最壞的情況,你毀掉了你的網站,你可以在幾分鐘內將其恢復。
您還需要刪除網站上不使用的任何外掛或主題。這可以解決一些問題,不僅僅是資料庫的問題。它還有助於加強網站的安全性。
WordPress 中的外掛列表
不過要注意的是,根據外掛或主題的不同,這可能會留下不需要的表格。當然,這也正是我們要優化資料庫的原因,因此瞭解哪些外掛和主題會留下瞬時資料將有助於後續工作。
最後一項任務是登入你所選擇的資料庫管理工具。資料庫錯誤顯然是效能問題的表現,因此在進行進一步優化之前,應先解決這些問題。
簡而言之,這個過程就是選擇所有表格,然後使用 “Check table” 按鈕生成報告。
在 phpMyAdmin 中選擇 “檢查表” 選項
如果看到 “OK”(確定)或類似資訊,這就是最佳狀態。但是,在繼續之前需要解決任何錯誤。這時,請求支援可能是個好主意。
1. 優化資料庫表
第一步是優化資料庫中的表。採用手動方法時,請訪問管理工具中的 Databases 連結,然後選擇資料庫:
在 phpMyAdmin 中選擇資料庫
在很多情況下,你已經進入了 WordPress 網站的資料庫。無論如何,您都會看到資料庫中的表列表。只需批量選擇所有表,然後從下拉選單中選擇 “Optimize table” 選項,再點選 “Go“:
選擇使用 phpMyAdmin 優化所有資料庫表
一段時間後,你會看到一份報告,概述了資料庫中每個表的狀態:
phpMyAdmin 中的優化報告
使用 WP-Optimize,前往 WP-Optimize > Database > Optimizations。在這裡,點選優化資料庫表選項旁邊的執行優化按鈕:
WP-Optimize 面板中的執行優化按鈕
外掛會執行所有表,然後給你一條成功資訊。此時,您就可以繼續修改文章了。
2. 清理文章修訂版本
WordPress 的文章修訂版本系統意味著您所做的每一次儲存都會隨著時間的推移而增加。您可以使用 SQL 查詢輕鬆地從資料庫中刪除這些內容。最簡單的方法只有一行:
DELETE FROM wp_posts WHERE post_type = 'revision’;
這將刪除表中所有型別的修改職位。不過,其他表中也有相關資料。要捕獲並刪除所有這些資料,可以使用以下程式碼段:
DELETE FROM wp_posts WHERE post_type = 'revision'; DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT ID FROM wp_posts); DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);
當然,如果複製和貼上,應為自己的資料庫使用正確的表字首。有了外掛,這項工作只需幾秒鐘。與一般的 WordPress 資料庫優化一樣,WP-Optimize 可讓您在 WordPress 中單擊按鈕:
在 WP-Optimize 中清除修訂和自動草稿的選項
今後,您可以通過訪問 wp-config.php 檔案來限制 WordPress 使用的修訂次數。在此檔案中新增以下一行並儲存更改:
define( 'WP_POST_REVISIONS', X );
這裡, X
是您希望保留的修訂次數。您也可以在這裡指定 “false
“,但我們不建議您這樣做。您總是希望在需要時至少有一個修訂版本可以備用。
3. 刪除垃圾評論和垃圾專案
我們還可以使用 SQL 查詢來刪除垃圾評論。請注意,在您對評論進行稽覈時,不需要的評論會在資料庫中保留 30 天。這意味著在這段時間內被標記為垃圾郵件的評論將保留在資料庫中。
您只需在資料庫管理工具中輸入幾行 SQL 語句,就能徹底清除這些評論:
DELETE FROM wp_comments, wp_commentmeta USING wp_comments LEFT JOIN wp_commentmeta ON wp_comments.comment_ID = wp_commentmeta.comment_id WHERE wp_comments.comment_approved = 'spam’;
在 WordPress 中傳送到垃圾箱的專案也是類似的情況。可能會有很多內容 “懸而未決”,您可以使用另一個 SQL 查詢將其刪除:
DELETE p, pm, tr FROM wp_posts p LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id WHERE p.post_status = 'trash’;
與修改文章一樣,你也可以在 wp-config.php 中設定刪除垃圾專案所需的時間值:
define( 'EMPTY_TRASH_DAYS', X )
在 WP-Optimize 中,有三個選項可以幫助您刪除垃圾評論和 WordPress 垃圾箱:
在 WP-Optimize 中刪除垃圾評論、垃圾箱和未批准評論的選項
還有刪除未批准評論的選項。這在某些情況下可能有用,但我們不建議這樣做。相反,您可以緩和這些評論,然後在必要時清除它們。
4. 刪除未使用的標籤
分類標準對 WordPress 非常重要,但隨著時間的推移,它們可能會成為一個龐大的集合。這是優化資料庫的絕佳用例,與其他技術一樣,您可以使用 SQL 查詢:
DELETE t, tt FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id LEFT JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy = 'post_tag' AND tt.count = 0;
在 WP-Optimize 中移除未使用標記的最近選項是 Clean post meta data。該功能會評估是否有任何孤兒後設資料,並將其刪除:
WP-Optimize 中的選項可清除無主的文章後設資料
雖然該選項也可能刪除類別和其他資料,但這是一個安全的解決方案,尤其是在沒有其他帖子或頁面使用它們的情況下。
5. 刪除 Pingback 和 Trackback
我們不清楚在當今時代有多少 WordPress 網站使用 pingback 和 trackback,但如果你不關閉設定,它們仍然會擾亂你的資料庫。首要任務是檢查是否已禁用該選項。這在 WordPress 的 “Settings“>”Discussion” 螢幕中是一項簡單的工作:
WordPress 中的 “討論” 設定介面 的 pingback 和 trackback 選項
在 “預設文章設定” 部分,確保取消勾選 “嘗試通知文章中連結的部落格… “和 “允許其他部落格傳送連結通知(Pingback 和 Trackback)到新文章 ” 選項並儲存更改。接下來,返回資料庫管理工具並執行以下查詢:
DELETE c, cm FROM wp_comments c LEFT JOIN wp_commentmeta cm ON c.comment_ID = cm.comment_id WHERE c.comment_type IN ('trackback', 'pingback’);
雖然型別不同,查詢的重點也不同,但兩者都與評論位於同一位置。WP-Optimize 為這兩種型別分別提供了兩個選項:
WP-Optimize 刪除 trackback 和 pingback 選項
完成這項工作後,您就不會再在資料庫中看到 trackbacks 或 pingback 了!
使用 WPTurbo 的 WordPress 資料庫自動優化功能
您還可以使用閃電博研發的 WordPress 優化外掛 WPTurbo 來實現資料庫優化。
WPTurbo 通過刪除修訂版本、自動草稿、回收站文章、瞬時資料、垃圾評論、瞬態等不必要的資料來清理您的資料庫。因此,您無需輸入即可確保資料庫保持優化。
WPTurbo 外掛
使用 WPTurbo 外掛並不是本篇文章的重點,但我們的外掛屬於開箱即用的型別,站長安裝外掛後可以快速上手並執行相關優化。
再者,WPTurbo 並非單純的資料庫優化外掛,除了資料庫優化之外,還能夠實現 WordPress 瘦身、速度優化和物件儲存等功能,多策略組合的形式來實現 WordPress 效能優化。
如何優化資料庫查詢以提高效率
優化您使用的資料庫查詢對於提高 WordPress 網站的效能和速度至關重要。高效的查詢意味著更快地檢索資料,進而改善載入時間和使用者體驗。
鑑於您可能會使用查詢來進行 WordPress 資料庫優化,以下是一些關於如何提高查詢效率的提示:
- 優化查詢結構。您會注意到,我們在示例查詢中沒有使用萬用字元(或星號)。與其使用
SELECT *
,不如具體到你需要的確切列。此外,儘可能使用JOIN
而不是子查詢。子查詢的效率可能較低,尤其是在沒有良好結構或涉及大型資料集的情況下。 - 使用查詢快取。Redis 等工具可以將查詢結果儲存在記憶體中。這意味著查詢結果可以從快取中提供,而無需下次再查詢資料庫。
這些都是模糊的提示,但你還可以做很多事情。接下來讓我們快速瞭解一下。
高階 WordPress 資料庫優化和故障排除技巧
索引可以幫助您為資料庫新增快速參考指南。它可以幫助資料庫伺服器在不掃描表中每一行的情況下更快地找到資料。
為此,請確定查詢中經常使用的列,並考慮為其新增索引。您可以在 phpMyAdmin(或類似軟體)中進行操作。首先,單擊要新增索引的表,然後轉到 “Structure” 選項卡:
在 phpMyAdmin 中訪問表的結構選項卡
接下來,選擇要建立索引的列,然後選擇表底部的 Index 選項:
在 phpMyAdmin 中選擇索引列
儲存更改後,這將為這些列建立索引。
EXPLAIN
語句還可以幫助你瞭解 MySQL 是如何執行查詢的。這可以幫助你發現效率低下的問題,並瞭解你的查詢是如何與索引互動的。要執行該語句,請將其新增到現有查詢的前面。執行時,SQL 將分解如何執行查詢:
執行以 EXPLAIN 語句為字首的查詢的輸出結果
儘管 MySQL 文件幾乎涵蓋了關於 EXPLAIN
語句的所有知識,但我們無法在此一一介紹。
監控效能
監控 WordPress 資料庫的效能是網站執行的重要組成部分。它有助於在潛在問題升級之前將其識別出來,並確保網站保持高效和響應性。
我們在這篇文章中介紹的許多技術都將用於效能監控,例如在緩慢查詢中使用 EXPLAIN
。然而,還有更多的方法可以使用。事實上,phpmyAdmin 在伺服器的 Status 選項卡中包含了自己的效能指標:
phpmyAdmin 狀態介面
這可以讓你檢視查詢的執行時間和程序(在 Query statistics 選項卡上),有助於識別需要優化的查詢。對於高階監控,MySQL Workbench 將是無價之寶:
MySQL Workbench 的主使用者介面
它為你提供了資料庫設計、開發和管理的高階功能。它還能提供效能報告和診斷,幫助您對資料庫進行微調。
在 WordPress 中,常年使用的 Query Monitor 外掛可讓您監控資料庫查詢、鉤子、條件、HTTP 請求等。
Query Monitor 外掛
它對檢測緩慢查詢和識別導致緩慢查詢的外掛或主題特別有用。但在大多數情況下,這是一個開發外掛,因此可能不適合生產網站。
如何在 WordPress 中處理大型資料庫
隨著 WordPress 網站內容、使用者和流量的增長,其資料庫自然也會隨之擴大。在執行網站時,您會經常遇到(或擔心)大型資料庫。
我們在本文中給出的大多數建議都適用於大型資料庫–以及減少大型資料庫。不過,對於那些本身就比一般資料庫大的資料庫,我們還可以給出很多其他建議:
- 歸檔舊資料。不要讓所有資料都是實時的,可以考慮將不經常訪問的舊文章或使用者資料歸檔。
- 使用內容交付網路(CDN)。從另一臺伺服器解除安裝和提供靜態資源,如圖片、視訊和下載,可以減少網站的負載,幫助網站加速。此外,無論使用者身在何處,網站的載入速度都會更快。
- 自定義查詢。如果您是 WordPress 開發人員,請為您的主題和外掛編寫高效的查詢。這將幫助您只獲取所需的內容,並保持較高的效率。
您甚至可以考慮使用表分割槽和 “資料庫分片” 等高階技術。這就是將資料分割到多個資料庫中。這通常比較複雜,通常需要專家進行管理。
說到這一點,要想讓您的資料庫和附屬網站實現高效能,專家是必不可少的。
小結
您的 WordPress 資料庫就像汽車的發動機:如果不進行調整,它就無法發揮您所需要的效能。事實上,如果缺乏對 WordPress 資料庫的優化,您的搜尋排名可能會從第一名掉到最後一名。您的使用者也會發現您的網站變得乏善可陳,因此一個執行速度快的頂級資料庫是成功的關鍵。
有很多方法可以做到這一點,但將人工技術、外掛等優化工具結合起來,會給您帶來最大的收益。在許多情況下,自動化可以幫助您完成許多此類任務,而無需登入或親自執行任何特定工具。
我們很想知道我們的 WordPress 資料庫優化技巧是否對您有用。請在下面的評論區告訴我們哪個最有效!
評論留言