跳转到

MySQL 生态系统

根据 DB-Engines 的排名,MySQL 是世界上最受欢迎的开源数据库之一。其第一个版本于 1995 年发布,并一直在不断开发,因此到现在它也还是一个非常流行的关系型数据库。MySQL 的成功要归功于一个由丰富的开源和商业版本组成的生态系统。MySQL 在本地和云端都被广泛使用。MySQL 的主要云服务提供商是 Google CloudOracleAmazon Web Services (AWS) 和 Microsoft Azure

MySQL 变种

目前市面上有多种 MySQL 变种,它们通过添加优化、可伸缩性、集群、灾难恢复等功能来扩展 MySQL。通过对 MySQL 进行分支而创建并且目前活跃的两个主要数据库是 MariaDBPercona Server for MySQL

MySQL 社区版和企业版

Oracle 开发和维护着 MySQL 社区版和企业版。企业版包括 Oracle 提供的技术支持,并且还具有一些额外的功能,例如 MySQL 企业监控、PAM 身份验证、增强型安全功能、增强型性能和可伸缩性、企业备份、企业审核、企业集群管理、线程池等。

MariaDB

MySQL 的创始人后续又创建了 MariaDB,并保证它将一直开源。事实上,MySQL 中的一些功能是先在 MariaDB 中发布的,例如 JSON 支持、多源复制和并行线程复制。MariaDB 相对于 MySQL 的一些主要优势包括:

  • 引入了新的存储引擎,例如用于分析的 ColumnStore、用于在 AWS S3 中对表进行归档的 S3 引擎、Aria EngineMyISAM 的优化版本)、适用于高压缩性和高流量应用的 MyRocks、Cassandra、SphinxSE 等
  • 可并行执行查询
  • 线程池,在 MySQL 企业版中提供,但在社区版中不提供
  • 可免费使用名为 MaxScale 的路由器
  • 多父级解决方案:Galera 集群

Percona

Percona Server for MySQL 由名为 Percona 的公司开发和维护。多年来,Percona 在 MySQL 基础上进行了大量工作来进行优化,并引入了新功能。与 MySQL 相比,使用 Percona 的一些主要优势包括:

  • 改进了 InnoDB 全文搜索、改进了内存存储引擎和刷新机制、提供更多哈希/摘要函数、支持在 InnoDB 表空间、二进制日志和临时文件中内置加密功能
  • 引入了并行双写缓冲区以对其进行优化
  • 具有用于热备份的 XtraBackup 工具,具有完整和增量备份选项
  • 支持 MyRocks 和 Toku 存储引擎
  • 高级问题排查工具,例如每个表、每个索引、每个客户端、每个用户和每个线程的性能计数器
  • PAM 身份验证和审核日志记录,在 MySQL 企业版中提供,但在社区版中不提供
  • 由 Percona 开发的 Pt-toolkit 实用程序服务,有许多用于管理 MySQL 的选项

应选择哪个变种?

应用的需求决定了应该选择哪个数据库,因为不同的数据库具有针对特定用例的独特功能。例如,如果您的应用需要分析功能,您可以使用 Percona 中的 ClickHouse 或 MariaDB 中的 ColumnStore,MySQL 中没有这样的选项。同样,如果您想使用 MySQL 社区版中不提供的线程池功能,则必须选择 MySQL 企业版或者 Percona 和 MariaDB 中的开源线程池功能。

云端 MySQL

云数据库是在公有云或混合云环境中运行的数据库,可帮助组织、存储和管理组织中的数据。云数据库可以作为代管式数据库即服务 (DBaaS) 提供,也可以部署在云端虚拟机 (VM) 上并由内部 IT 团队自行管理。代管式 MySQL 的主要云服务提供商包括:

Google Cloud

Google Cloud 提供虚拟机托管的 MySQL 版本(用户必须自行管理)和 Cloud SQL(全代管式产品)。

Amazon Web Services (AWS)

Amazon Web Services (AWS) 提供虚拟机托管的 MySQL,并以 RDS 的形式提供全代管式解决方案。AWS 还提供 Aurora,它是与 MySQL 兼容的 MySQL 产品,具有其他功能。

Azure SQL 数据库

与其他云供应商类似,Azure 提供两种 MySQL 部署模式:一种是虚拟机选项 MySQL on Azure VMs,另一种是全代管式版本 Azure Database for MySQL。

Oracle Cloud

Oracle 提供在其虚拟机上托管 MySQL 的功能。它还推出了全新的全代管式产品 MySQL HeatWave Database Service

Digital Ocean

Digital Ocean 也可在其虚拟机上托管 MySQL。它也提供 MySQL 的全代管式托管选项。

高可用性 (HA) 或集群解决方案

许多公司在扩展 MySQL 方面做了许多工作,并打造了可为 MySQL 数据库提供故障切换和高可用性的产品。其中一些是与 MySQL 搭配使用的直接工具,一些则是对 MySQL 源代码进行修改后产生的独立产品,可提供高可用性或多父级集群。一些热门的 MySQL 高可用性和可伸缩性解决方案包括:

  • MySQL 的组复制和 InnoDB 集群

一个 InnoDB 集群至少包含三个 MySQL 服务器实例,可提供高可用性和扩缩功能。InnoDB 集群由 MySQL Shell、MySQL Router 和支持组复制功能的 MySQL 服务器组成。如需了解详情,请点击此处

Percona XtraDB 集群是一种同步集群解决方案,提供高可用性、并行复制和可伸缩功能。Percona XtraDB 集群包含使用 ProxySQL 自动配置 Percona XtraDB 集群节点的 ProxySQL 管理工具。如需了解详情,请点击此处

  • MariaDB Galera 集群

MariaDB Galera 集群是 MariaDB 的虚拟同步多主节点集群,提供高可用性和可伸缩性功能。它由 MariaDB 服务器和 Galera wsrep 提供程序库提供支持。它提供自动节点加入、真并行复制、多主节点拓扑等功能。如需了解详情,请点击此处

  • 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 工具

MySQL 工具有各种形式,包括基于 Web 的界面、命令行界面 (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 Workbench - 属于 MySQL,在社区版和企业版版中提供,具有高级功能
  • Percona Monitoring and Management (PMM) - 由 Percona 开发,免费使用
  • HeidiSQL - 由 Ansgar Becker 开发,免费使用
  • Percona Toolkit - 由 Percona 开发,免费使用
  • Toad - 属于 Quest,付费工具
  • phpMyAdmin - 用于管理 MySQL 的免费开源 Web 工具
  • DBeaver - 由开源社区开发,在社区版和企业版中提供,并提供由 DBeaver 维护的高级功能
  • Navicat - 属于 CyberTech,付费工具
  • SQLyog - 属于 Webyog,也是付费工具

其他一些通过图表分析错误率、流量和查询模式并具有提醒机制的主要监控工具包括 New Relic、Zabbbix、Cortex、Prometheus 和 Grafana。

使用容器/Kubernetes 运行 MySQL

如今,使用 Docker 容器映像在 Kubernetes 集群上运行数据库正变得越来越流行。它使用户可以使用代码来管理数据库、方便快捷地进行部署、保护数据、与应用隔离以及轻松使用共享资源。基本上,数据库系统可以利用 Docker 的所有优势。一些 Kubernetes operator 已经可用于 MySQL。不过,在这方面仍有很大的改善空间。

准备好试用 MySQL 了吗?

Google Cloud 提供全代管式 MySQL 产品 Cloud SQL for MySQL
了解 Cloud SQL

了解 Cloud SQL for MySQL 如何帮助您进行创新。 查看文档