什麼是MySQL?初學者入門知識

什麼是MySQL?初學者入門知識

MySQL是由Oracle開發和支援的開源SQL關聯式資料庫管理系統。

這是對“什麼是MySQL”問題的簡短的一句話回答,但讓我們將其分解為更人性化的術語。

資料庫只是為便於使用和檢索而組織的結構化資料集合。對於WordPress站點,“資料”是指部落格文章的文字、站點上所有註冊使用者的資訊、自動載入的資料、重要的設定配置等​​。

MySQL只是一個可以為您儲存和管理該資料的流行系統,它是WordPress站點特別流行的資料庫解決方案。

建議閱讀:如何修復MySQL Server Has Gone Away錯誤以及如何修復MySQL 1064錯誤

現在讓我們更深入地瞭解這個問題。

什麼是MySQL?

MySQL最初是在1995年推出的。從那時起,它經歷了所有權/管理權的幾次變化,直到2010年在Oracle Corporation結束。雖然現在由Oracle負責,但MySQL仍然是開源軟體,這意味著您可以自由使用和修改它。

MySQL Logo

MySQL Logo(圖片來源:MySQL/Oracle

這個名字來自於將“My”(聯合創始人的女兒的名字)與SQL(結構化查詢語言的縮寫)放在一起,SQL是一種程式語言,可幫助您訪問和管理關聯式資料庫中的資料。

為了理解MySQL的工作原理,瞭解兩個相互關聯的概念很重要:

關聯式資料庫

在將資料儲存在資料庫中時,您可以使用不同的方法。

MySQL選擇了一種稱為關聯式資料庫的方法。

使用關聯式資料庫,您的資料會被分成多個單獨的儲存區域(稱為表),而不是將所有內容放在一個大儲存單元中。

例如,假設您要儲存兩種型別的資訊:

  • 客戶– 他們的姓名、地址、詳細資訊等。
  • 訂單——比如購買了哪些產品、價格、下單者等。

如果您試圖將所有資料集中到一個大鍋中,則會遇到一些問題,例如:

  • 不同的資料——您需要為訂單收集的資料與為客戶收集的資料不同。
  • 重複資料——每個客戶都有一個名字,每個訂單也有一個客戶的名字。處理重複資料變得混亂。
  • 無組織——您如何可靠地將訂單資訊與客戶資訊聯絡起來?

為了解決這些問題,關聯式資料庫將使用一個單獨的表用於客戶,而另一個單獨的表用於訂單。

但是,您可能還希望能夠說“向我展示 John Doe 的所有訂單”。這就是關係部分的用武之地。

使用稱為“鍵”的東西,您可以將這兩個表中的資料連結在一起,以便您可以根據需要操作和組合不同表中的資料。請務必注意,金鑰不是客戶的姓名。相反,您會使用100%獨特的東西,例如數字ID號。

如果您曾經檢視過 WordPress 站點的資料庫,您會發現它使用了這種關係模型,將您的所有資料劃分到單獨的表中。

預設情況下,WordPress使用12個單獨的表,但許多WordPress外掛也會新增自己的表。例如,下面WordPress站點的資料庫有44個單獨的表!

MySQL中不同表的示例

MySQL中不同表的示例

為了完成這個關係概念,讓我們讓它特定於WordPress ……

WordPress在wp_posts表中儲存部落格文章,在wp_users表中儲存使用者。但是,因為這兩個表通過一個連線,所以您可以將每個使用者帳戶與每個使用者撰寫的所有部落格文章相關聯。

下面是它在資料庫中的樣子。

每個帖子都分配了一個post_author,這是一個唯一的標識號(這是關鍵):

wp_posts表

wp_posts表

然後,如果你想看到哪個使用者帳戶對應於這個數字,你可以看看IDwp_users表:

wp_users表

wp_users表

關鍵——ID——是將一切聯絡在一起的東西。儘管將資料儲存在單獨的表中,但這就是它們彼此“相關”的方式。

客戶端-伺服器模型

除了作為關係資料庫系統之外,MySQL 還使用了一種稱為客戶端-伺服器模型的東西。

伺服器的部分是你的資料實際駐留。但是,為了訪問這些資料,您需要請求它。這就是客戶進來的地方。

使用 SQL——我們之前提到的程式語言——客戶端向資料庫伺服器傳送客戶端需要的資料的請求。

例如,如果有人訪問您網站上的部落格文章,您的 WordPress 網站將向資料庫伺服器傳送多個 SQL 請求,以獲取將部落格文章傳送到該訪問者的 Web 瀏覽器所需的所有資訊。它會:

  • 查詢wp_posts表以獲取部落格文章的內容
  • 查詢wp_users表以獲取作者框的資訊(使用我們上面顯示的
  • 等等。

如果您想確切地檢視WordPress站點發出的資料庫請求型別,您可以使用一個名為Query Monitor的免費外掛來檢視WordPress站點(客戶端)和資料庫伺服器之間的確切互動:

Query Monitor外掛顯示傳送到MySQL伺服器的單個SQL查詢

Query Monitor外掛顯示傳送到MySQL伺服器的單個SQL查詢

您可以使用的另一個高階解決方案是New Relic。我們的工程師經常使用此工具來解決WordPress站點上可能由於MySQL查詢速度慢而導致的效能問題。

New Relic

如果您的WordPress站點無法訪問資料庫伺服器,則會觸發建立資料庫連線訊息的常見錯誤

使用MariaDB,而不是MySQL:有什麼區別?

部分主機使用名為MariaDB的資料庫系統,而不是MySQL。但是,您在MySQL中看到的所有相同特徵也適MariaDB。

實際上,MariaDB實際上是MySQL的一個分支,MariaDB的首席開發人員是MySQL的原始創始人之一。“分支”只是意味著MariaDB開發人員將原始的開源MySQL程式碼作為他們的基礎,然後在此基礎上建立MariaDB。

因此,雖然名稱不同,但MariaDB與MySQL緊密相連,並提供完整的“插入式”替換功能(也就是說,您可以從MySQL無縫切換到MariaDB,而無需採取任何特殊預防措施)。

然而,雖然MariaDB確實提供了與MySQL的互操作性,但它還在某些方面提供了改進的效能,這符合我們使用效能最佳的架構來支援您的WordPress網站的理念。

小結

MySQL是一個開源的關聯式資料庫管理系統。對於WordPress網站,這意味著它可以幫助您儲存所有部落格文章、使用者、外掛資訊等。

它將該資訊儲存在單獨的“表”中並將其與“鍵”連線,這就是它是關係的原因

當您的WordPress站點需要訪問該資訊時,它會使用SQL(這是客戶端-伺服器模型)向MySQL資料庫伺服器傳送請求。

MariaDB是MySQL的聯合創始人之一設計開發的MySQL的一個分支,並提供直接替換互操作性以及一些效能改進。因此,本文中的所有核心概念也適用於MariaDB。

評論留言