跳至

什麼是 MySQL?

MySQL 是全球最熱門的開放原始碼關聯資料庫之一。這是因為 MySQL 受到電子商務網站、社群媒體和應用程式的廣泛使用,包括 DrupalJoomlaMagentoWordPress。此外,MySQL 也是廣受使用的 Linux-Apache-MySQL-PHP/Perl/Python (LAMP) 網路應用程式堆疊中不可或缺的一環,後者支援許多熱門的應用程式、網站和服務。而 DB-Engines 將 MySQL 排名為全球第二熱門的資料庫。

瞭解 Google Cloud 的代管關聯資料庫 MySQL 適用的 Cloud SQL 如何協助您降低營運成本並提升效率。

MySQL 的定義

MySQL 是一種開放原始碼關聯資料庫管理系統。與其他關聯資料庫一樣,MySQL 會將資料儲存在由資料列與資料欄組成的資料表中。使用者可使用結構化查詢語言 (通常稱為 SQL) 來定義、操控、控管及查詢資料。MySQL 是開放原始碼,因此 25 年來包含許多與使用者緊密合作開發的功能。

MySQL 軟體為開放原始碼

MySQL 是開放原始碼服務,因此可以在 GNU 通用公眾授權條款之下免費使用。這也意味著任何人都能自行修改軟體的原始碼,再加以使用。這會導致 MySQL 分支為其他的資料庫變化版本,例如 MariaDBPercona Server for MySQL。另外,MySQL 也提供其他商業用途授權。

關聯資料庫

MySQL 屬於資料庫類別,稱為關聯資料庫管理系統 (RDBMS)。關聯資料庫是一組資訊,以預先定義的關係彙整資料,可將資料儲存在一或多個資料表 (或「關係」) 的資料欄或資料列中,以便輕鬆查看及瞭解各種不同資料結構之間有何關聯。「關係」是不同資料表之間的邏輯連結,根據這些資料表之間的互動來建立。

記錄

商業設計語言 (SQL) 以 Edgar F. Codd 的研究中所述的關聯模型為基礎,而 MySQL 則是做為 SQL 的擴充功能而建立。由 David Axmark、Allan Larsson 和 Michael Widenius 創立的瑞典公司 MySQL AB,於 1995 年開發及發布 MySQL。「MySQL」這個名稱是由 Michael Wildenius 女兒的名字「My」加上「SQL」組合而成,指的是「結構查詢語言」(SQL)。Sun Microsystems 於 2008 年收購 MySQL AB。Oracle Corporation 自從在 2010 年收購 Sun Microsystems 之後,目前仍持有 MySQL 的擁有權。

MySQL 最初是以 C 和 C++ 程式設計語言開發,由於其在許多開放原始碼與專屬作業系統上的可用性,因此過去幾年來有許多版本都很受歡迎。最新版本的資料庫 MySQL 8.0 版已於 2018 年推出。

分支

多年來基於許多原因,MySQL 專案產生許多分支,而其中某些分支已消失。在其餘的分支專案中,最熱門的專案是 MariaDB 和 Percona Server for MySQL。MariaDB 是 MySQL 原始創辦人所建立的分支,以確保在由 Oracle 收購後出現的商業化疑慮中,MySQL 仍保持為開放原始碼。Percona Server for MySQL 是 MySQL 的另一個開放原始碼發布版本,旨在與 MySQL 保持密切的相容性。進一步瞭解 MySQL 版本和 MySQL 的完整生態系統。

使用者介面

您可透過圖形使用者介面 (GUI) 或指令列介面工具存取 MySQL。

圖形使用者介面 (GUI)

GUI 提供整合式環境,由按鈕和互動小工具所組成,可提供查詢與開發應用程式的視覺體驗,而非在指令列介面中使用文字指令。許多 MySQL 的 GUI 都是由 MySQL 開放原始碼專案和第三方整合商所開發。MySQL Workbench 則是最熱門的工具之一,該工具也是開放原始碼且由 MySQL AB 開發。一些其他知名的 GUI 為 phpMyAdmin,這是開發網路應用程式的熱門管理工具,以及 HeidiSQL,這是一個開放原始碼管理工具,可用於管理 MySQL 以外的其他資料庫。

指令列

您也可以透過指令列工具存取 MySQL。這些工具也稱為 MySQL 公用程式,隨附於 MySQL 發行套件,且可透過 MySQL 殼層或其他指令列介面工具 (例如 Percona Toolkit) 的文字指令叫用。

部署 MySQL

使用者可以使用開放原始碼程式碼,在自有的實體機器上手動部署 MySQL,也可以下載其中一個封裝發行套件來部署 MySQL。MySQL 最常安裝在具有垂直資源調度的單一執行個體或機器上,是提升效能的主要方法。不過,您可以使用一個主要節點和多個次要節點在備用配置中設定 MySQL,一旦執行個體故障時,可以升級為主要執行個體。

另一個越來越熱門的 MySQL 託管方法是透過雲端服務供應商 (CSP)。有幾種方法可在雲端服務供應商的環境中部署 MySQL。一種是直接在虛擬機器上安裝 MySQL,並自行管理。另一種則是運用雲端服務供應商的代管服務來處理許多的 MySQL 管理作業層面,讓 MySQL 的管理工作變得輕鬆許多。Google Cloud 提供 Cloud SQL 形式的代管服務。MySQL 適用的 Cloud SQL 是一項全代管資料庫服務,可協助您在 Google Cloud 上設定、維護及管理 MySQL 關聯資料庫;並提供有關安全性、高可用性和觀測能力的加值服務,可減少資料庫管理員的負擔,有助於機構推動革新。參閱設定 MySQL 適用的 Cloud SQL 執行個體的最佳做法一文,瞭解如何設定 MySQL 的 Cloud SQL 執行個體。使用者可運用多項實用工具和選項,輕鬆簡單地從地端部署 MySQL 或雲端服務供應商的其他資料庫遷移至 MySQL 適用的 Cloud SQL

如要瞭解全代管服務 MySQL 適用的 Cloud SQL 和自行管理 MySQL 的優點和差異,請參閱 MySQL 託管選項一文。

MySQL 的優點

MySQL 速度快、可靠、可擴充且易於使用。MySQL 可以順暢地在桌上型電腦或筆記型電腦上執行,搭配其他應用程式、網路伺服器等,完全不需要或幾乎不需要處理。如果您將整個機器設定為 MySQL,您可以調整設定,利用所有可用記憶體、CPU 效能和 I/O 容量。MySQL 也可以向上擴充至多部機器,並透過網路相互連結。

使用 MySQL 來管理和儲存資料還有許多其他優勢,包括:

高可用性

MySQL 中的高可用性 (HA) 是指資料庫引擎能夠長時間運作,而不發生故障。MySQL 中的高可用性設定可能相當複雜,且取決於每位使用者的特定可用性需求,以及他們部署 MySQL 的方式。如要在 MySQL 中設定高可用性,使用者需要費心處理資料複製、失敗偵測、容錯移轉和容錯回復機制,以及在容錯移轉後將資料庫流量重新導向至次要執行個體等問題。MySQL 適用的 Cloud SQL 讓高可用性程序變得簡單又輕鬆。進一步瞭解在 Google Compute Engine 上具高可用性的 MySQL,或 MySQL 適用的 Cloud SQL 提供的全代管、高可用性服務

安全性

MySQL 安全性考量涵蓋眾多因素。有些重要因素與資料保護有關,例如透過資料備援機制和密碼、權限、存取權控管和網路安全性等一般安全性程序,防止資料損毀。進一步瞭解 MySQL 適用的 Cloud SQL 安全性功能,這是 Google Cloud 的全代管 MySQL 產品。

備份與還原

MySQL 則支援透過多種機制 (包括第三方工具) 備份和復原資料。您可以透過 mysqldump 公用程式、使用二進位檔記錄進行漸進式備份,以及複製功能等方式,來備份及還原 MySQL。MySQL 適用的 Cloud SQL 提供自有的備份與還原功能,可啟用自動化或隨選備份。您可以進一步瞭解

彈性

您不需要變更整個資料庫結構或影響現有的應用程式,就能輕鬆新增、更新或刪除資料表和關係,也可以視需要對資料進行其他變更。

易用性

使用 SQL 輕鬆執行複雜的查詢,讓新手使用者能流暢地與資料庫互動。

效能

效能最佳化是管理任何資料庫的重要環節。MySQL 提供多項功能和調整選項,可讓您輕鬆開發高效能應用程式。如要進一步瞭解這類功能,請參閱 MySQL 效能最佳化提示一文。此外,有關查詢調整的另一篇文章也提供了效能方面的特定最佳做法。

MySQL 具有 ACID (完整性、一致性、獨立性和耐用性) 特性,無論錯誤、失敗或其他潛在危害,都能確保資料有效性。

用途

MySQL 的多元性,可用於許多不同的用途。歡迎進一步探索下列用途。

網頁應用程式

MySQL 是今日許多使用開放原始碼 LAMP 堆疊建構的網路應用程式的重要部分。LAMP 代表使用 Linux 做為作業系統、Apache 做為網路伺服器、MySQL 做為資料庫,以及 PHP、Python 或 PERL 做為程式設計語言。LAMP 可協助開發人員建構動態網路應用程式,而這類應用程式需要從 MySQL 等資料庫擷取最新資訊。這類資訊包括使用者帳戶、使用者詳細資料、產品名稱、客戶記錄和銷售等等。使用者可以透過 SQL 輕鬆存取及操控儲存在資料庫中的資訊。如要瞭解詳情,請參閱 LAMP如何使用這項工具建構網路應用程式

線上交易處理

現在,許多應用程式都需要使用資料庫 (例如 MySQL),才能快速處理來自廣大人群的大量資料庫交易。MySQL 等 OLTP 資料庫是許多日常網路交易的基礎,包括金融交易、旅遊預訂行程及保存記錄等。為了支援線上交易處理的應用實例,MySQL 遵循 ACID 原則,支援 XML 與 JSON、預存程序、分群法與分區。此外,您也可以選擇多種儲存引擎,讓您能靈活整合多種資料表類型的資料。

電子商務

MySQL 是一個熱門的電子商務應用程式資料庫,需要管理使用者、消費者資訊、財務資料及分析趨勢,以防止詐欺活動。MySQL 等關聯資料庫可用來將資訊整理成資料表 (產品、客戶、訂單),還能視需要新增其他資料表。部分全球大型機構 (如 Airbnb、Uber、Netflix、Booking.com、Spotify 和 eBay) 都將 MySQL 用於自家的電子商務應用程式。MySQL 也可以部署在混合部署作業中,以完全支援電子商務用途。MySQL 可用於結構化資料的關聯資料庫,以及產品詳細資料或行銷資訊等非結構化資料的非關聯資料庫。

軟體式服務 (SaaS) 應用程式

軟體式服務 (SaaS) 應用程式通常為 24 小時全年無休的作業,因此需要降低停機時間、提升安全性,並因應需求變化而調度資源。易於部署、管理和擴充的 MySQL 已成為相當受歡迎的資料庫選項,可讓您輕鬆建構軟體式服務 (SaaS) 應用程式。由於這是開放原始碼,因此開發人員可以快速開始使用服務,不必支付專屬軟體的授權費。MySQL 全球社群相當活躍,且為提供額外功能的外掛程式做出了貢獻。

內容管理

MySQL 是 WordPress 和 Drupal 等內容管理系統 (CMS) 的熱門資料庫選擇。CMS 會將文章、網頁、圖片、評論、類別、標記、自訂欄位、使用者及其他設定儲存在 MySQL 資料庫中。由於 CMS 每天都有數千個帳戶或數百萬個帳戶,因此 MySQL 可以同時處理大型資料表和多項查詢。隨著目標對象成長,MySQL 可以垂直或水平調度資源,滿足您的業務需求。

社群媒體

社群媒體應用程式的一大關鍵是,使用者、群組和評論等各個資料儲存庫之間需要連結。這類用途會影響社群媒體應用程式在選擇關聯資料庫時的偏好,而 MySQL 就成為最佳選擇。其中知名的例子包括 Twitter、Pinterest 和 LinkedIn。

準備好試用 MySQL 了嗎?

Google Cloud 提供了 MySQL 的全代管服務:MySQL 適用的 Cloud SQL
瞭解 Cloud SQL

瞭解 MySQL 適用的 Cloud SQL 如何協助您推動革新。查看說明文件

Google Cloud 提供代管的 MySQL 資料庫,可滿足您的業務需求,包括淘汰地端部署資料中心、執行軟體式服務 (SaaS) 應用程式,以及遷移核心業務系統等。