WordPress 數據庫的終極指南
已發表: 2022-02-09WordPress 的核心是一個 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 的替代品。 這意味著您可以卸載 MySQL,安裝 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 設置存儲在這裡。 插件和主題通常還會在此處存儲設置信息,如下面的屏幕截圖所示。 在這裡,我們可以看到我們自己的網站文件更改監視器的掃描頻率選項設置為每天。
該表具有以下列:
列名 | 描述 | 類型 | 空值 | 鑰匙 | 默認 |
---|---|---|---|---|---|
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 全新安裝中包含的默認示例頁面。
該表具有以下列:
列名 | 描述 | 類型 | 空值 | 鑰匙 | 默認 |
---|---|---|---|---|---|
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 表中。
該表具有以下列:
列名 | 描述 | 類型 | 空值 | 鑰匙 | 默認 |
---|---|---|---|---|---|
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 數據庫所需的一切。