MySQL 生態系統

根據 DB-Engines 的資料,MySQL 是全世界最熱門的開放原始碼資料庫之一。MySQL 的第一個版本於 1995 年推出,此後就一直持續開發,至今仍是非常熱門的關聯式資料庫。MySQL 的成功,歸功於由種類繁多的開放原始碼和商業版本所組成的生態系統。MySQL 廣泛用於地端部署和雲端環境。MySQL 的主要雲端服務供應商包括 Google CloudOracleAmazon Web Services (AWS) 和 Microsoft Azure

MySQL 變種版本

現今市面上有各式各樣的 MySQL 變種版本,透過加入最佳化、擴充、分群、災難復原等功能來擴充 MySQL。由 MySQL 分支開發而成,目前廣泛使用的兩個主要資料庫為 MariaDBPercona Server for MySQL

MySQL Community Edition 和 Enterprise Edition

MySQL Community Edition 和 Enterprise Edition 均由 Oracle 開發及維護。Enterprise Edition 包含 Oracle 提供的技術支援,同時還具備其他功能,例如 MySQL 企業監控、PAM 驗證、增強安全性、增強的效能與擴充性、企業備份、企業稽核、企業叢集管理、執行緒集區等。

MariaDB

MySQL 的創辦人後續再打造出 MariaDB,並保證維持開放原始碼狀態。事實上,MySQL 的一些功能是先在 MariaDB 中推出,然後再納入 MySQL 中,例如 JSON 支援、多來源複製和平行執行緒複製功能。與 MySQL 相比,MariDB 的主要優點如下:

  • 導入新的儲存引擎,例如可用於分析的 ColumnStore、可在 AWS S3 上封存資料表的 S3 引擎、Aria Engine (MyISAM 的最佳化版本)、適用於高壓縮與高流量應用程式的 MyRocks、Cassandra、SphinxSE 等
  • 可同時執行多個查詢
  • 執行緒集區 (適用於 MySQL Enterprise Edition,但不適用於 Community Edition)
  • 可免費使用名為 MaxScale 的路由器
  • 多父項解決方案:Galera Cluster

Percona

Percona Server for MySQL 是由 Percona 這家公司開發及維護。Percona 多年來投入了大量心力,設法將 MySQL 最佳化並導入新功能。與 MySQL 相比,使用 Percona 的一些主要優點如下:

  • InnoDB 全文搜尋、記憶體儲存引擎和清除機制皆經過改良、提供更多的雜湊/摘要函式、支援內建加密功能的 InnoDB 資料表空間、二進位檔記錄,以及暫存檔案
  • 導入平行重複寫入緩衝區,進一步提升效能
  • 可用於熱備份的 XtraBackup 工具,提供完整備份和增量備份等選項
  • 支援 MyRocks 和 Toku 儲存引擎
  • 進階疑難排解輔助工具,例如:個別資料表、個別索引、個別用戶端、個別使用者和個別執行緒的效能計數器
  • PAM 驗證和稽核記錄,MySQL Enterprise Edition 具備這些功能,但在 Community Edition 中不支援
  • 由 Percona 開發的 Pt-toolkit,這是提供眾多管理 MySQL 選項的公用程式服務

如何選擇?

應用程式的需求會決定所選擇的資料庫,因為不同的資料庫具有適合特定用途的獨特功能。例如,如果應用程式需要數據分析功能,您可以在 Percona 中使用 Clickhouse,或在 MariaDB 中使用 ColumnStore,但 MySQL 中並不提供這類選項。同樣地,如果您想使用執行緒集區功能,但 MySQL Community 版不支援,就必須在 Percona 和 MariaDB 中選擇使用 Enterprise MySQL 或開放原始碼來執行緒集區功能。

雲端環境的 MySQL

雲端資料庫是一種在公有雲或混合雲環境運作的資料庫,可協助組織、儲存及管理機構內部的資料。雲端資料庫可以代管資料庫式服務 (DBaaS) 的形式提供,也可以部署在雲端虛擬機器 (VM) 中,並由內部 IT 團隊自行管理。代管 MySQL 的主要雲端服務供應商包括:

Google Cloud

Google Cloud 同時提供虛擬機器託管版本的 MySQL (使用者可以自行管理),以及 Cloud SQL (全代管服務)。

Amazon Web Services (AWS)

Amazon Web Services (AWS) 提供適用於 MySQL 的 VM 託管選項,以及採用 RDS 形式的全代管解決方案。AWS 也提供 Aurora 方案,這是與 MySQL 相容的 MySQL 服務,並附有額外功能。

Azure SQL Database

Azure 提供兩種 MySQL 部署模型,與其他雲端廠商所提供的類似:採用 Azure VM 上的 MySQL 形式的虛擬機器選項,以及採用 MySQL 適用的 Azure Database 形式的全代管版本。

Oracle Cloud

Oracle 提供在虛擬機器上託管 MySQL 的功能,此外還推出一項全新的全代管產品,稱為 MySQL HeatWave Database Service

Digital Ocean

Digital Ocean 也提供有在自家虛擬機器上託管 MySQL 的功能,以及 MySQL 適用的全代管託管選項。

高可用性 (HA) 或叢集解決方案

許多公司致力於擴充 MySQL,以及打造為 MySQL 資料庫提供容錯移轉和高可用性的產品。有些是與 MySQL 搭配使用的現成工具,有些則是修改 MySQL 原始碼後衍生的不同產品,用以提供高可用性或多父項叢集。一些熱門的 MySQL HA 與擴充性解決方案包括:

  • MySQL 的群組複製作業和 InnoDB Cluster

一個 InnoDB Cluster 包含至少三個 MySQL 伺服器執行個體,並提供高可用性和資源調度功能。InnoDB Clusters 是由 MySQL Shell、MySQL Router 和包含 Group Replication 功能的 MySQL 伺服器組成。詳情請參閱「Chapter 23 InnoDB Cluster」(第 23 章:InnoDB Cluster)。

Percona XtraDB Cluster 是一種同步分群法解決方案,具備高可用性、平行複製和擴充性功能。Percona XtraDB Cluster 包含 ProxySQL 管理工具,可使用 ProxySQL 自動設定 Percona XtraDB Cluster 節點。詳情請參閱 Percona XtraDB Cluster 的相關說明。

  • MariaDB Galera Cluster

MariaDB Galera Cluster 是適用於 MariaDB 的虛擬同步多重主要版本叢集,可提供高可用性和擴充性功能。該資料庫採用 MariaDB 伺服器和 Galera wsrep provider 程式庫。這個 API 提供自動節點彙整、真正平行複製、多重主要版本拓撲等功能。詳情請參閱 MariaDB Galera Cluster 的相關說明。

  • Continuent Tungsten 叢集

Tungsten 叢集提供單一簡易套件,其中包含以叢集形式部署及管理 MySQL 資料庫所需的所有核心元件。這個解決方案可提供地理區域分群法解決方案,其中包含 Tungsten 管理工具、複寫器、連接器、資料節點和資訊主頁。詳情請參閱 Continuent Tungsten 叢集的相關說明。

  • MariaDB Xpand (舊稱 ClustrixDB)

MariaDB Xpand 提供符合 ACID 規範的分散式 SQL、高可用性、容錯能力、寫入資源調度,以及適用於交易工作負載的水平向外擴充。MariaDB Xpand 是 MariaDB Enterprise 的一個元件,其中包含一或多個 MaxScale 節點,以及三個以上的 Xpand 節點。詳情請參閱 MariaDB Xpand 的相關說明。

  • ScaleArc

ScaleArc 是一種資料庫負載平衡軟體,可提供高可用性。詳情請參閱 ScaleArc 的相關說明。

  • Vitess

Vitess 內建資料分割功能,不必在應用程式中加入資料分割邏輯,即可擴充資料庫,提供高可用性和擴充性。詳情請參閱 Vitess 的相關說明。

  • 具備用於容錯移轉的標準複製功能的工具:MHA、ProxySQL、MaxScale 和 Orchestrator
  • Google Cloud、Oracle、AWS 和 Azure 等雲端式服務都為 MySQL 提供內部高可用性

MySQL 工具

MySQL 工具有各種形式,包括網頁式、指令列介面 (CLI) 和圖形使用者介面 (GUI)。MySQL 提供各式各樣的開放原始碼和商業工具,可用於資料庫設計、開發、管理、備份、效能監控及傳送快訊。

部分支援 GUI 的熱門 MySQL 監控工具如下:

Percona Monitoring and Management、Prometheus、MySQL Enterprise Monitor、New Relic、SolarWinds、HeidiSQL、AppDynamics、Datadog 和 SQLyog。

部分熱門管理、開發或公用程式工具如下:

  • GUI 型 - MySQL Workbench、HeidiSQL、DBeaver、dbForge Studio、Navicat、SQLyog
  • CLI 型 - Percona toolkit、ghost

熱門工具詳細資訊:

  • MySQL 擁有的 MySQL Workbench - Community Edition 與 Enterprise Edition 提供進階功能
  • Percona Monitoring and Management (PMM):由 Percona 開發,可免費使用
  • HeidiSQL - 由 Ansgar Becker 開發,無須支付費用即可使用
  • Percona Toolkit - 由 Percona 開發,無須支付費用即可使用
  • Toad - Quest 擁有的付費工具
  • phpMyAdmin - 無須支付費用的開放原始碼網頁式工具,可管理 MySQL
  • DBeaver - 由開放原始碼社群開發,支援 Community Edition 和 Enterprise Edition,並提供由 DBeaver 維護的進階功能
  • Navicat - CyberTech 擁有的付費工具
  • SQLyog - Webyog 擁有的付費工具

此外,還有一些主要的監控工具提供可用於分析錯誤率、流量和查詢模式的圖表,以及傳送快訊的機制,例如 New Relic、Zabbix、Cortex、Prometheus 和 Grafana。

使用容器/Kubernetes 執行 MySQL

近來使用 Docker 容器映像檔在 Kubernetes 叢集上執行資料庫的做法越來越普遍。這項工具提供程式碼、簡單快速的部署方式、資料保護機制、與應用程式隔離,以及共用資源可用性等方法,有助於管理資料庫。基本上,資料庫系統可以充分運用 Docker 的所有優勢。部分 Kubernetes 運算子也可用於 MySQL。不過,這個領域仍有很大的進步空間。

準備好試用 MySQL 了嗎?

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

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

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
控制台