跳至

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

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

MariaDB

MySQL 的創辦人後來建立了 MariaDB,以確保能夠保持為開放原始碼。事實上,MySQL 的某些功能早期是在 MariaDB 中發行,比 MySQL 更早,比如 JSON 支援、多來源複製和平行執行緒複製。與 MySQL 相比,MariaDB 一些主要優點如下:

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

Percona

Percona 公司開發及維護 Percona Server for MySQL。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 資料庫服務

Digital Ocean

Digital Ocean 也具有在其虛擬機器上託管 MySQL 的功能。並提供 MySQL 適用的全代管託管選項。

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

許多公司皆致力於擴充 MySQL 及建立產品,為 MySQL 資料庫提供容錯移轉和高可用性。有些是與 MySQL 搭配使用的直接工具,有些則是對 MySQL 原始碼所做的修改,最終會建立獨立的產品,以提供高可用性或多父項叢集。一些常見的 MySQL 高可用性與擴充性解決方案包括:

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

一個 InnoDB Cluster 包含至少三個 MySQL 伺服器執行個體,並提供高可用性和資源調度功能。InnoDB Clusters 是由 MySQL Shell、MySQL Router 和包含 Group Replication 功能的 MySQL 伺服器組成。如需詳細資訊,請按這裡

Percona XtraDB Cluster 是一種同步分群法解決方案,具備高可用性、平行複製功能和可擴充的功能。Percona XtraDB Cluster 包含 ProxySQL 管理工具,可使用 ProxySQL 自動設定 Percona XtraDB Cluster 節點。如需詳細資訊,請按這裡

  • MariaDB Galera Cluster

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

  • Continuent Tungsten 叢集

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

  • MariaDB Xpand (舊稱 ClustrixDB)

MariaDB Xpand 提供符合 ACID 規定的分散式 SQL、高可用性、容錯、寫入資源調度和水平向外擴充,適用於交易工作負載。MariaDB Xpand 是 MariaDB Enterprise 的一個元件。其中包含一或多個 MaxScale 節點以及三個以上的 Xpand 節點。如需詳細資訊,請按這裡

  • ScaleArc

ScaleArc 是提供高可用性的資料庫負載平衡軟體。如需詳細資訊,請按這裡

  • 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 全代管服務
瞭解 Cloud SQL

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