根據 DB-Engines 的資料,MySQL 是全世界最熱門的開放原始碼資料庫之一。MySQL 的第一個版本於 1995 年推出,此後就一直持續開發,至今仍是非常熱門的關聯式資料庫。MySQL 的成功,歸功於由種類繁多的開放原始碼和商業版本所組成的生態系統。MySQL 廣泛用於地端部署和雲端環境。MySQL 的主要雲端服務供應商包括 Google Cloud、Oracle、Amazon Web Services (AWS) 和 Microsoft Azure。
現今市面上有各式各樣的 MySQL 變種版本,透過加入最佳化、擴充、分群、災難復原等功能來擴充 MySQL。由 MySQL 分支開發而成,目前廣泛使用的兩個主要資料庫為 MariaDB 和 Percona Server for MySQL。
MySQL Community Edition 和 Enterprise Edition 均由 Oracle 開發及維護。Enterprise Edition 包含 Oracle 提供的技術支援,同時還具備其他功能,例如 MySQL 企業監控、PAM 驗證、增強安全性、增強的效能與擴充性、企業備份、企業稽核、企業叢集管理、執行緒集區等。
MySQL 的創辦人後續再打造出 MariaDB,並保證維持開放原始碼狀態。事實上,MySQL 的一些功能是先在 MariaDB 中推出,然後再納入 MySQL 中,例如 JSON 支援、多來源複製和平行執行緒複製功能。與 MySQL 相比,MariDB 的主要優點如下:
Percona Server for MySQL 是由 Percona 這家公司開發及維護。Percona 多年來投入了大量心力,設法將 MySQL 最佳化並導入新功能。與 MySQL 相比,使用 Percona 的一些主要優點如下:
應用程式的需求會決定所選擇的資料庫,因為不同的資料庫具有適合特定用途的獨特功能。例如,如果應用程式需要數據分析功能,您可以在 Percona 中使用 Clickhouse,或在 MariaDB 中使用 ColumnStore,但 MySQL 中並不提供這類選項。同樣地,如果您想使用執行緒集區功能,但 MySQL Community 版不支援,就必須在 Percona 和 MariaDB 中選擇使用 Enterprise 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 適用的全代管託管選項。
許多公司致力於擴充 MySQL,以及打造為 MySQL 資料庫提供容錯移轉和高可用性的產品。有些是與 MySQL 搭配使用的現成工具,有些則是修改 MySQL 原始碼後衍生的不同產品,用以提供高可用性或多父項叢集。一些熱門的 MySQL HA 與擴充性解決方案包括:
一個 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 的虛擬同步多重主要版本叢集,可提供高可用性和擴充性功能。該資料庫採用 MariaDB 伺服器和 Galera wsrep provider 程式庫。這個 API 提供自動節點彙整、真正平行複製、多重主要版本拓撲等功能。詳情請參閱 MariaDB Galera Cluster 的相關說明。
Tungsten 叢集提供單一簡易套件,其中包含以叢集形式部署及管理 MySQL 資料庫所需的所有核心元件。這個解決方案可提供地理區域分群法解決方案,其中包含 Tungsten 管理工具、複寫器、連接器、資料節點和資訊主頁。詳情請參閱 Continuent Tungsten 叢集的相關說明。
MariaDB Xpand 提供符合 ACID 規範的分散式 SQL、高可用性、容錯能力、寫入資源調度,以及適用於交易工作負載的水平向外擴充。MariaDB Xpand 是 MariaDB Enterprise 的一個元件,其中包含一或多個 MaxScale 節點,以及三個以上的 Xpand 節點。詳情請參閱 MariaDB Xpand 的相關說明。
ScaleArc 是一種資料庫負載平衡軟體,可提供高可用性。詳情請參閱 ScaleArc 的相關說明。
Vitess 內建資料分割功能,不必在應用程式中加入資料分割邏輯,即可擴充資料庫,提供高可用性和擴充性。詳情請參閱 Vitess 的相關說明。
MySQL 工具有各種形式,包括網頁式、指令列介面 (CLI) 和圖形使用者介面 (GUI)。MySQL 提供各式各樣的開放原始碼和商業工具,可用於資料庫設計、開發、管理、備份、效能監控及傳送快訊。
部分支援 GUI 的熱門 MySQL 監控工具如下:
Percona Monitoring and Management、Prometheus、MySQL Enterprise Monitor、New Relic、SolarWinds、HeidiSQL、AppDynamics、Datadog 和 SQLyog。
部分熱門管理、開發或公用程式工具如下:
熱門工具詳細資訊:
此外,還有一些主要的監控工具提供可用於分析錯誤率、流量和查詢模式的圖表,以及傳送快訊的機制,例如 New Relic、Zabbix、Cortex、Prometheus 和 Grafana。
近來使用 Docker 容器映像檔在 Kubernetes 叢集上執行資料庫的做法越來越普遍。這項工具提供程式碼、簡單快速的部署方式、資料保護機制、與應用程式隔離,以及共用資源可用性等方法,有助於管理資料庫。基本上,資料庫系統可以充分運用 Docker 的所有優勢。部分 Kubernetes 運算子也可用於 MySQL。不過,這個領域仍有很大的進步空間。
瞭解 MySQL 適用的 Cloud SQL 如何協助您推動革新。 查看說明文件