文章目录
主流版本
MySQL 是一个被广泛采用的关系型数据库,最初由 MySQL AB,现已被Oracle收购。目前的主流版本有: MySQL 8.0 和长期支撑位 MySQL 8.4 LTS。 MySQL 8.0/8.4 LTS 提供成熟的工具和原生 JSON;
MariaDB 是由原版数据库创建的社区驱动型分支。 MySQL 作者;其 LTS 系列包括 10.11 和 11.4。两者都旨在与常见工作负载无缝兼容,并为数百万个网站提供支持。
MariaDB 10.11/11.4 LTS 提供开源自由、内置线程池和 Galera 集群。
关键区别
MariaDB 与 MySQL 的主要区别是 MariaDB 性能的基础。MariaDB 提供更多的存储引擎,支持 20 多万个连接。MySQL 的企业版包含专有代码,而 MariaDB 则完全开源。这些差异造就了 MariaDB 卓越的速度。在最近的基准测试中,MariaDB 的性能比 MySQL 快 13% 到 36%。
许可与成本
MySQL 采用双重许可模式(社区版采用 GPL 许可,企业版采用商业许可)。一些高级功能,例如企业备份、防火墙和线程池,仅在付费版本中提供。
MariaDB Server 采用 GPLv2 许可,并在开源版本中提供了许多企业级功能(例如线程池、审计插件和 Galera)。对于采用开源软件的托管服务提供商和代理机构而言,这是 MariaDB 的一大优势。
兼容性和生态系统
- JSON: MySQL 8 具有原生二进制 JSON 类型,并具有高效的索引;MariaDB 将 JSON 视为 LONGTEXT 的别名,并提供了 JSON 函数和虚拟列。
- 优化器和 SQL: 两者都以不同的节奏添加新语法;如果您的应用程序使用窗口函数、CTE 或特殊索引类型,请检查兼容性。
- 复制/高可用性: MySQL 组复制/InnoDB 集群与 MariaDB Galera 集群(集成)。
复制和高可用性
MySQL 提供异步复制和组复制(与 Router 和 Shell 组成 InnoDB 集群)。
MariaDB 提供异步复制,并集成 Galera 以实现真正的多主集群。
安全性与合规性
MySQL 版本 8 默认启用强身份验证(caching_sha2_password)。旧版本客户端可能需要更新。 MySQL 企业版增加了商业安全功能;
MariaDB 支持 ed25519 和其他插件,并提供合理的默认值。MariaDB 提供开源审计插件和强大的加密选项,如果配置正确,可以满足大多数合规性需求。
版本对照
| MariaDB 版本 | 大致对应的 MySQL 版本 | 说明 |
|---|---|---|
| 5.1 | 5.1 | 分支早期,高度相似 |
| 5.2 | 5.1 | |
| 5.3 | 5.1 | |
| 5.5 | 5.5 | 分支后首个与 MySQL 版本号对应的长期支持版本 |
| 10.0 | 5.6 | MariaDB 版本号开始独立,引入大量新特性 |
| 10.1 | 5.6 | |
| 10.2 | 5.7 | 引入窗口函数、通用表表达式(CTE)等重要 SQL2003 特性 |
| 10.3 | 5.7 | |
| 10.4 | 8.0 | 引入基于角色的权限管理等,与 MySQL 8.0 在某些方面对标 |
| 10.5 | 8.0 | |
| 10.6 | 8.0 | 长期支持版本 (LTS) |
| 10.7 | 8.0 | 短期支持版本 (STS) |
| 10.8 | 8.0 | 短期支持版本 (STS) |
| 10.9 | 8.0 | 短期支持版本 (STS) |
| 10.10 | 8.0 | 短期支持版本 (STS) |
| 10.11 | 8.0 | 长期支持版本 (LTS) |
| 11.0 | 8.0+ | MariaDB 版本号策略变更,更关注发布年份,与 MySQL 版本对应关系更弱 |
| 11.1 | 8.0+ | 短期支持版本 (STS) |
| 11.2 | 8.0+ | 短期支持版本 (STS) |
| 11.3 | 8.0+ | 短期支持版本 (STS) |
| 11.4 | 8.0+ | 短期支持版本 (STS) |
| 11.5 | 8.0+ | 长期支持版本 (LTS) |
如何选择
选择Mysql
- 您的应用程序依赖于原生 JSON 的性能和索引。
- 您需要Oracle的工具生态系统和稳定的长期支持(LTS)节奏。
- 你需要广泛的第三方供应商认证。 MySQL 8.
选择 MariaDB
- 您更喜欢完全开源的功能(线程池、审计),而不需要商业许可。
- 您需要集成 Galera 多主聚类。
- MariaDB 的并发模型和优化器将使您的工作负载受益。
如果您想要最大的开放性、更好的共享/VPS主机默认性能以及无需额外许可的现代集群选项, MariaDB的通常来说,默认选项是更好的选择。
常见问题
为什么 MySQL 比 MariaDB 更容易学习?
由于 MySQL 如此受欢迎,因此有很多视频和教程可以学习如何设置数据库和使用其 SQL 语法创建查询。MySQL 也适用于个人项目,可免费供个人使用。它可以在 Windows 和 Linux 上运行,几乎所有开发人员都可以使用。许多开发人员从 MySQL 开始学习数据库编程和存储设计。
MariaDB 的难度稍高,因为它是作为企业解决方案设计的。它有更多的引擎可以使用,而且可以在云中使用。大多数企业应用程序的功能比消费类应用程序要多得多,因此学习难度更大。
MariaDB 会取代 MySQL 吗?
没有人能预测未来,但 MySQL 很可能会继续存在。在企业应用中,更多的应用开发者可能会选择 MariaDB 而不是 MySQL,但 MySQL 仍然保持着强大的市场地位。
未来,MariaDB 可能会为大部分网络应用提供支持,但目前,它在企业领域,尤其是 Linux 环境中保持着强大的影响力。在 LAMP 环境中,MariaDB 有可能成为更受欢迎的企业应用数据库。
应该使用 MariaDB 还是 MySQL?
如果您需要学习数据库或有一个小型项目,MySQL 可能是最佳选择。MySQL 提供方便的桌面应用程序,可简化数据库管理和配置。MySQL Workbench 软件使用图形用户界面指导你完成表的创建过程,如果你犯了错误,数据库服务会更好地反馈你的查询和函数。
在大型企业中,MariaDB 是更好的选择。对于预计并发用户数量会大幅增加的小型企业来说,MariaDB 也是一个不错的选择(如果需要,这里也有一些图形用户界面应用)。随着应用程序越来越受欢迎,访问它的用户越来越多,MariaDB 也能轻松扩展。如果您想获得使用云数据库的经验,MariaDB 是学习在云中复制和管理数据的不错选择。
MariaDB 比 MySQL 好吗?
一些开发人员更喜欢 MariaDB,因为它是开源和免费的,但 MySQL 是一个稳定、流行的替代方案,适合小型项目使用。
熟悉 MySQL 的开发人员可能更喜欢使用他们熟悉的数据库,但选择 MariaDB 是学习新技术的绝佳方式。了解这两种数据库都有好处,在企业层面,MariaDB 可能是更好的选择。