WordPress 數據庫的終極指南

已發表: 2022-02-09

WordPress 的核心是一個 CMS(內容管理系統)。 要管理內容,它需要能夠存儲它。 WordPress 通過文件夾和文件以及數據庫來做到這一點。 我們之前在另一篇文章中介紹了 WordPress 文件系統; 這次我們將專注於數據庫。

在本文中,我們將研究 WordPress 數據庫、它的結構以及每個字段的工作方式。 我們還包括一個關於 MySQL 的簡短歷史課程。 提示——MySQL 中的 My 並不意味著它是你的; 我是一個真實的人,但誰? - 繼續閱讀以找出答案。

目錄

  • SQL、MySQL 和 MariaDB 的(非常)簡史
  • 如何訪問 WordPress 數據庫
    • phpMyAdmin
    • Plesk/cPanel
    • SSH/MySQL/MariaDB 客戶端
    • WordPress 插件
  • WordPress數據庫結構
    • 表結構
      • wp_commentmeta
      • wp_comments
      • wp_links
      • wp_options
      • wp_postmeta
      • wp_posts
      • wp_terms
      • wp_termmeta
      • wp_term_relationships
      • wp_term_taxonomy
      • wp_usermeta
      • wp_users

SQL、MySQL 和 MariaDB 的(非常)簡史

WordPress 使用稱為 MySQL 的 RDBMS。 從技術上講,它是基於 MySQL 的,因為越來越多地使用 MariaDB 代替 MySQL。 SQL 代表結構化查詢語言,是我們用來與數據庫交互的語言,而不是數據庫本身。

正如我們今天所知,MySQL 在互聯網的發展中發揮了重要作用。 它於 1995 年首次推出,作為 Microsoft 和 Oracle 提供的產品的替代品,很快成為首選的黃金 RDBMS 標準。

MySQL 的歷史是豐富多彩的,先後被 Sun Microsystems 和 Oracle 收購(Oracle 收購了 Sun Microsystems 和 MySQL)。

作為對甲骨文收購 MySQL 的回應,MySQL 的創始人 Monty Widenius 將 MySQL 分叉成 MariaDB,並以他的女兒 Maria 的名字命名。 (有趣的是,MySQL 是以蒙蒂的另一個女兒命名的——我的)。 隨著時間的推移,MariaDB 和 MySQL 之間的差異越來越大; 但是,這兩者在許多情況下仍然可以互換,包括 WordPress 數據庫。

事實上,在許多情況下,MariaDB 被認為是 MySQL 的替代品。 這意味著您可以卸載 My​​SQL,安裝 MariaDB,然後繼續工作,就好像沒有任何改變一樣。 話雖如此,MariaDB 可以在某些情況下提供性能改進,並提供與存儲引擎等更廣泛的兼容性。

重要的是要注意 MySQL 仍然是免費的,並且是在雙許可系統下發布的。 在許多情況下,MySQL 用於指代 MySQL 或 MariaDB 的數據庫。

如何訪問 WordPress 數據庫

在連接到 WordPress 數據庫時,有幾個不同的選項可用。 您可以使用的一種或多種方法在很大程度上取決於您使用的 WordPress 託管類型。 如果您不確定您的服務器是如何配置的,請諮詢您的託管服務提供商或系統管理員。 無論哪種方式,選項都可以包括;

phpMyAdmin

phpMyAdmin 是一個最受歡迎的工具,因為它允許我們通過基於 Web 的 GUI 連接到數據庫。 phpMyAdmin 需要安裝在託管數據庫的同一台服務器上,許多託管服務提供商直接提供 phpMyAdmin。

Plesk/cPanel

Plesk 和 cPanel 是兩個提供類似功能的控制面板平台——便於服務器管理的用戶界面。 當然,存在某些關鍵差異,包括它們支持的技術和操作系統。 無論哪種方式,它們也允許我們訪問數據庫,儘管方式略有不同。

SSH/MySQL/mariaDB 客戶端

SSH 是一種用戶友好度較低的數據庫連接方式,它提供 CLI(命令行界面)而不是 GUI。 因此,建議對 SQL 命令有更深入的了解。 在連接到數據庫之前,需要在託管數據庫的同一台服務器上顯式設置 SSH。

插件

您還可以使用 WordPress 插件來訪問您的 WordPress 數據庫。 使用插件,您可以直接從 WordPress 管理控制台訪問數據庫。 在這裡,您需要確保從信譽良好的供應商處選擇插件,並遵循所有適用的最佳實踐來確保您的數據安全。 如果您不確定要使用哪個插件,請閱讀我們的指南,了解如何為您的 WordPress 網站選擇最佳插件。

WordPress數據庫結構

WordPress 數據庫由 12 個表組成。 默認情況下,每個表都以 wp_ 前綴開頭; 但是,這可以在初始安裝和配置過程中更改。 出於 WordPress 安全原因,通常建議更改前綴,特別是如果您打算或已經在同一台服務器上進行了多個安裝。

組成 WordPress 數據庫的 12 個表如下(按字母順序列出):

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_termmeta
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_usermeta
  • wp_users

我們現在將逐個瀏覽每個表並查看它存儲的數據及其內部結構。

表結構

在我們深入了解每個表的細節之前,有必要花一些時間來了解一下它的結構。 如果您不熟悉數據庫文檔,本節將為您提供速成課程,您會在下一節中找到有用的。 另一方面,如果您對 SQL 表非常熟悉,請隨意跳過。

  • 字段名稱 - 這是字段的名稱,您可以在 SQL 表中找到該名稱
  • 描述 - 我們將其放入以幫助您了解該字段包含哪些類型的數據
  • 類型 – 這是字段接受的數據類型。 括號中的數字表示我們可以輸入的可接受字符數量的硬性限制
  • Null - 目前尚不清楚為什麼使用此字段
  • 鍵 - 這告訴我們條目是否是鍵。 有不同類型的鍵,包括:
    • 基本的
    • 主要(部分)
    • 指數
    • 索引(部分)
    • 獨特
  • 默認 - 如果條目有默認值,默認值將在此處列出
  • 註釋 - 任何附加註釋

wp_commentmeta

wp_commentsmeta 表存儲與評論相關的元數據。 評論單獨存儲在 wp_comments 表中。 該表具有以下字段:

列名描述類型空值鑰匙默認
meta_id 這是條目的唯一 ID。 它會自動遞增bigint(20) 無符號基本的
comment_id 這是在 wp_comments 表中找到的與元數據相關的評論的 ID bigint(20) 無符號指數0
元密鑰這標識條目用於的元數據類型varchar(255) 是的指數空值
元值這是實際的元數據長文本是的空值

wp_comments

wp_comments 表存儲帖子評論。 與評論相關的元數據存儲在 wp_commentmeta 表中。 該表具有以下列:

列名描述類型空值鑰匙默認
評論 ID 這是條目的唯一 ID。 它會自動遞增大整數(20) 基本的不適用
comment_post_ID 這是寫評論的帖子的 ID,可在 wp_posts 表中找到大整數(20) 指數0
評論作者這是寫評論的作者的名字小文本
comment_author_email 這是撰寫評論的作者的電子郵件地址varchar(100) 指數
評論作者網址這是寫評論的作者的網址varchar(200)
comment_author_IP 這是寫評論的作者的IP地址varchar(100)
評論日期這是發表評論的日期和時間約會時間0000-00-00 00:00:00
comment_date_gmt 這是發表評論的 GMT(格林威治子午線時間)日期和時間約會時間索引和索引 Pt2 0000-00-00 00:00:00
評論內容這是留下的實際評論文本
評論業力這可供插件用於評論管理目的整數(11)
評論批准這表明評論是否已被批准varchar(20) 索引第 1 部分0
評論代理這是發表評論的地方varchar(255)
評論類型這是留下的評論類型varchar(20)
評論父如果評論是回复,則該字段表示父評論bigint(20) 無符號指數0
用戶身份如果註冊了評論用戶,這將是他們在 wp_users 中可用的 ID bigint(20) 無符號0

wp_links

該表最初是為了支持 blogrolls 而創建的,該功能從 WordPress 3.5 開始就被刪除了。 保留它是為了向後兼容,但不再使用。 該表具有以下列:

列名描述類型空值鑰匙默認
鏈接ID 這是條目的唯一 ID。 自動遞增bigint (20) 無符號基本的
鏈接網址這是鏈接的網址varchar(255)
鏈接名稱
這是鏈接的名稱varchar(255)
鏈接圖像這是鏈接相關圖片的 URL varchar(255)
鏈接目標這是鏈接的目標框架varchar(25)
鏈接描述這是鏈接的描述varchar(255)
鏈接可見這告訴我們鏈接是否公開顯示varchar(20) 指數
鏈接所有者這是在 wp_users 中創建鏈接的用戶的用戶 ID bigint (20) 無符號1
鏈接評級這是鏈接的評分整數(11) 0
鏈接更新這是鏈接更新的日期和時間約會時間0000-00-00 00:00:00
鏈接關係這是鏈接的關係varchar(255)
鏈接筆記這是關於鏈接的註釋中文本
鏈接RSS 這是鏈接的 rss 提要地址varchar(255)

wp_options

通過管理控制台配置的 WordPress 設置存儲在這裡。 插件和主題通常還會在此處存儲設置信息,如下面的屏幕截圖所示。 在這裡,我們可以看到我們自己的網站文件更改監視器的掃描頻率選項設置為每天。 WordPress 文件更改監控掃描頻率

該表具有以下列:

列名描述類型空值鑰匙默認
option_id 這是條目的唯一 ID。 自動遞增。 bigint(20) 無符號基本的
選項名稱這是選項/設置的名稱varchar(64) 獨特
選項值這是正在存儲的設置值長文本
自動加載此設置告訴 wp_load_alloptions() 是否應該自動加載選項varchar(20) 指數是的

wp_postmeta

每個帖子附帶的帖子元數據存儲在這裡。 元數據可以包括附加文件、縮略圖、所需的帖子標籤和其他此類信息。 該表具有以下列:

列名描述類型空值鑰匙默認
meta_id 這是條目的唯一 ID。 自動遞增bigint(20) 無符號基本的
字段名稱
post_id

這是與元數據相關聯的帖子的 ID,在 wp_posts 中可用bigint(20) 無符號指數0
元密鑰這是一個標識元數據的索引鍵,因為每個帖子可以有多個元數據varchar(255) 是的指數空值
元值這是實際的元數據長文本是的空值

wp_posts

wp_posts 表是一個主要的表,包含 WordPress 數據的核心。 它包含實際的帖子、頁面以及導航菜單項,如下面的示例所示,該示例顯示了每個 WordPress 全新安裝中包含的默認示例頁面。 每個 WordPress 全新安裝中都包含示例頁面

該表具有以下列:

列名描述類型空值鑰匙默認
ID 這是條目的唯一 ID。 自動遞增bigint(20) 無符號主要和索引(第 4 部分)
post_author 這是寫這篇文章的作者的 ID,在 wp_users 中可用bigint(20) 無符號指數0
發布日期這是創建帖子的日期和時間約會時間索引(第 3 部分) 0000-00-00 00:00:00
post_date_gmt 這是創建帖子時的 GMT(格林威治標準時間)日期和時間約會時間0000-00-00 00:00:00
post_content 這是帖子的實際內容長文本
帖子標題這是帖子的標題文本
post_excerpt 這是帖子的摘錄文本
post_status 這是帖子的狀態varchar(20) 索引(第 2 部分) 發布
評論狀態這告訴我們是否允許對帖子發表評論varchar(20) 打開
ping_status 這告訴我們是否允許 ping 和 trackbacks varchar(20) 打開
post_password 帖子可以使用此處存儲的任何適用密碼進行密碼保護varchar(20)
post_name 這是帖子標題的 URL slug varchar(200) 指數
to_ping 這是 WordPress 在帖子更新時應向其發送 pingback 的 URL 列表文本
ping 通這是 WordPress 在更新時 pingback 的 URL 列表文本
post_modified 這是帖子最後修改的日期和時間約會時間0000-00-00 00:00:00
post_modified_gmt 這是帖子最後修改的 GMT 日期和時間約會時間0000-00-00 00:00:00
post_content_filtered 這是 post_content 的過濾版本,通常由插件用於緩存目的長文本
post_parent 當 post 是修訂或附件時,這將創建父子關係bigint(20) 無符號指數0
嚮導這是帖子的全局唯一標識符 (GUID) varchar(255)
菜單順序這是頁面和非發布項目出現的訂單號整數(11) 0
post_type 這標識了內容類型varchar(20) 索引(第 1 部分) 郵政
post_mime_type 這是帖子附件的 MIME 類型varchar(100)
評論計數這是評論、引用和 pingback 的總數大整數(20) 0

wp_terms

術語是用於對 WordPress 中的對象進行分類的分類對象。 例如,帖子中使用的類別和標籤是術語的類型。 此表包含整個 WordPress 中使用的所有不同類型的術語。 該表具有以下列:

列名描述類型空值鑰匙默認
term_id 這是條目的唯一 ID。 自動遞增bigint(20) 無符號基本的
姓名這是術語的名稱varchar(200) 指數
蛞蝓這是術語的蛞蝓varchar(200)
術語組這是主題和插件可以用來將術語組合在一起的別名大整數(10) 0

wp_termmeta

此表存儲與 wp_terms 中的術語相關聯的元數據。 該表具有以下列:

列名描述類型空值鑰匙默認
meta_id 這是條目的唯一 ID。 自動遞增bigint(20) 無符號基本的
term_id 這是 wp_terms 中可用的元數據相關術語的 ID bigint(20) 無符號指數0
元密鑰這是術語元數據的標識符鍵varchar(255) 是的指數空值
元值這是實際的元數據長文本是的空值

wp_term_relationships

此表維護帖子和分類法之間的關係。 該表具有以下列:

列名描述類型空值鑰匙默認
object_id 這是 wp_posts 中可用的帖子 ID bigint(20) 無符號初級(第 1 部分) 0
term_taxonomy_id 這是 wp_term_taxonomy 中可用的術語分類的 ID bigint(20) 無符號主要(第 2 部分)和索引0
term_order 這是術語的順序整數(11) 0

wp_term_taxonomy

該表提供了術語分類法,因此,它們提供了可以使用的上下文。 例如,我們可以將術語數據庫用作帖子類別和產品類別(假設我們正在銷售數據庫服務)。 在這種情況下,帖子類別和產品類別是術語分類法。 該表具有以下列:

列名描述類型空值鑰匙默認
term_taxonomy_id 這是條目的唯一 ID。 自動遞增bigint(20) 無符號基本的
term_id 這是 wp_terms 中可用的術語的 ID bigint(20) 無符號獨特的(第 1 部分) 0
分類這是分類學的蛞蝓varchar(32) 唯一(第 2 部分)和索引
描述這是分類的描述長文本
父母如果分類是子分類,這是父分類的 ID bigint(20) 無符號0
數數這是分配此分類的對像數大整數(20) 0

wp_usermeta

此表存儲 wp_users 表中未找到的其他用戶數據。 WordPress 本身以及插件或主題都可以使用此表。

用戶元數據的一個示例是用戶暱稱。 雖然 WordPress 默認包含此字段,但它仍然是元數據的一部分,如下所示。 另一個例子是 WooCommerce; 使用此表存儲客戶信息(例如送貨地址)的電子商務插件。

用戶暱稱元數據

該表具有以下列:

列名描述類型空值鑰匙默認
umeta_id 這是條目的唯一 ID。 自動遞增bigint(20) 無符號基本的
用戶身份這是與 wp_users 中的信息相關的用戶 ID bigint(20) 無符號指數0
元密鑰這是元條目的關鍵標識符varchar(255) 是的指數空值
元值這是實際的元數據長文本是的空值

wp_users

WordPress 用戶的信息存儲在這裡。 由於用戶是 WordPress 生態系統不可或缺的一部分,因此此表是必不可少的。

該表僅存儲每個用戶的核心信息,如下例所示。 所有其他信息都存儲在 wp_usermeta 表中。

WordPress 用戶其他元信息

該表具有以下列:

列名描述類型空值鑰匙默認
ID 這是條目的唯一 ID。 自動遞增bigint(20) 無符號基本的
用戶登錄這是用戶的用戶名varchar(60) 指數
用戶通行證這是用戶的密碼varchar(64)
user_nicename 這是用戶的顯示名稱varchar(50) 指數
用戶電子郵件這是用戶的電子郵件地址varchar(100)
用戶網址這是用戶的 URL(例如網站) varchar(100)
用戶註冊這是用戶註冊的日期和時間約會時間0000-00-00 00:00:00
user_activation_key 這是用戶的激活密鑰,用於重置密碼varchar(60)
用戶狀態這不再從 WordPress 3.0 開始使用,而是用於指示用戶是否是垃圾郵件整數(11) 0
顯示名稱這是用戶的公開顯示名稱varchar(250)

熟悉 WordPress 數據庫

數據庫對於外行來說可能非常令人生畏——畢竟,它們保存了 WordPress 工作所需的所有數據。 雖然這裡的失誤確實會導致網站崩潰,但不要讓這嚇倒你。 畢竟,如果需要,了解 WordPress 數據庫的方式可以大大簡化您的故障排除工作。

設置測試或登台環境可以為您提供一個安全的空間,您可以在其中自由地進行試驗,而不會冒著使您的網站脫機的風險。 您甚至可以在您的計算機上免費設置 XAMPP 暫存環境——為您提供掌握 WordPress 數據庫所需的一切。