MariaDB 与 MySQL:应该选择哪个数据库?两者都是可靠的开源关系型数据库系统,广泛用于网站和应用程序。如果软件是围绕 MySQL 生态系统构建的,MySQL 是一个稳妥的选择;MariaDB 则是独立开发的替代方案,提供不同的功能和存储引擎选项。
对于普通的 WordPress 网站,两者通常都能很好地满足需求。对于定制应用程序,兼容性和特定数据库功能往往比细微的性能差异更重要。
下面来看看两者有何区别,以及选择前需要考虑什么。
什么是 MariaDB?
MariaDB 是一个开源关系型数据库管理系统(RDBMS),由原 MySQL 项目的开发人员于 2009 年创建。
由于人们对 MySQL 项目未来的所有权归属有所担忧,MariaDB 最初作为兼容 MySQL 的替代方案出现。此后,MariaDB 独立发展,加入了自己的功能、优化措施和存储引擎特性。
MariaDB 常用于网站、业务应用程序以及运行在 Linux 服务器上的数据库服务。
什么是 MySQL?
MySQL 是一个关系型数据库系统,最早于 1995 年发布,目前由 Oracle 开发。
与 MariaDB 一样,它将数据组织在由行和列组成的表中。应用程序使用 SQL(结构化查询语言)检索、插入、更新和管理信息。
MySQL 获得了广泛的 Web 应用程序、开发框架和托管环境支持。
它提供免费的社区版,以及具备更多功能和支持选项的商业企业版产品。

MariaDB 与 MySQL:并列比较
虽然这两个数据库有共同的历史,但如今已不再完全相同。
| 特性 | MariaDB | MySQL |
|---|---|---|
| 开发方 | MariaDB 基金会及贡献者 | Oracle |
| 开源版本 | 有 | 有 |
| 核心数据库类型 | 关系型 | 关系型 |
| 默认事务型存储引擎 | InnoDB | InnoDB |
| 其他存储引擎 | 选择广泛 | 支持多种存储引擎 |
| JSON 存储 | 基于文本的 JSON 别名 | 原生二进制 JSON |
| 复制 | MariaDB 特有的实现方式 | MySQL 特有的实现方式 |
| WordPress 支持 | 有 | 有 |
| 商业支持 | 可提供 | 可提供 |
| 兼容性 | 取决于版本和功能 | 取决于版本和功能 |
对于普通网站,这些差异可能几乎没有明显影响。但如果应用程序依赖高级 SQL 功能、复制、JSON 处理或特定的数据库驱动程序,这些差异就会更加重要。
MariaDB 与 MySQL 的性能比较:哪个更快?
没有放之四海而皆准的赢家。
对于某些查询,MariaDB 的性能可能更好;对于另一些查询,MySQL 可能更快。结果取决于数据库版本、工作负载、索引、配置和可用硬件。
例如,一个主要获取缓存内容的 WordPress 网站,与处理复杂查询的报表应用程序,对数据库的要求就不同。
有几个因素会影响性能:
- 索引:合理建立索引可以显著缩短查询执行时间。
- 内存:充足的 RAM 有助于数据库缓存经常访问的信息。
- 存储:高速 SSD 或 NVMe 存储可以改善磁盘密集型工作负载的性能。
- 查询设计:无论使用哪种数据库引擎,低效的 SQL 查询都可能造成瓶颈。
- 配置:缓存大小、连接数限制和其他设置都会影响性能。
与其根据笼统的基准测试结论选择 MariaDB 或 MySQL,不如测试应用程序实际使用的查询。
对于大多数网站,优化数据库通常比仅为了可能的速度提升而更换数据库引擎更有价值。
兼容性:MariaDB 能替代 MySQL 吗?
MariaDB 最初被设计为兼容 MySQL 的替代方案。许多应用程序可以在这两个数据库中使用相似的 SQL 语句和客户端接口。
不过,随着两个项目各自发展,它们的兼容性也发生了变化。
重要差异包括:
JSON 处理:MySQL 使用原生二进制 JSON 数据类型。MariaDB 将 JSON 实现为 LONGTEXT 的别名,并提供 JSON 相关函数和验证功能。
身份验证:不同版本支持的身份验证插件和默认配置可能有所不同。
复制:MariaDB 和 MySQL 对全局事务标识符(GTID)采用不同的实现方式,这使某些跨数据库复制配置更为复杂。
SQL 行为:函数、排序规则、保留字和优化器的行为并不总是相同。
这意味着,对于现代 MySQL 环境,不能保证 MariaDB 可以直接替换 MySQL 而无需调整。
如果您要迁移现有应用程序,请先检查其数据库要求,并在独立环境中测试迁移,再对生产环境进行更改。
WordPress 应该选择 MariaDB 还是 MySQL?
WordPress 同时支持 MariaDB 和 MySQL。
根据 WordPress 的官方要求,推荐的数据库版本为:
- MariaDB 10.11 或更新版本。
- MySQL 8.0 或更新版本。
对大多数 WordPress 用户来说,两者在实际使用中的差别相对较小。主题、插件、缓存、PHP 性能和托管服务质量通常对网站体验影响更大。
如果您的 WordPress 网站运行稳定,通常不需要更换数据库。
如果您计划建立新网站,请选择支持当前数据库版本、定期更新并提供可靠备份的托管环境。
如需进一步了解网站基础设施,请阅读我们的《WordPress 托管与网站托管对比》指南。
无论使用 MySQL 还是 MariaDB,数据库凭据错误、服务器可用性问题或配置问题都可能导致 WordPress 无法连接数据库。如果您遇到此问题,请参阅我们的指南,了解如何修复 WordPress 中的“建立数据库连接时出错”问题。
MariaDB 与 MySQL:许可和支持
这两个数据库都提供采用 GPL 许可的开源版本,但它们的商业生态系统有所不同。
MariaDB Community Server 采用开放式开发模式,MariaDB 相关厂商和其他提供商也提供商业服务。
MySQL Community Edition 同样采用 GPL 许可,而 Oracle 还提供具备更多企业级功能和支持的商业版本。
对于普通网站,通常不需要购买商业数据库许可证。
需要特定企业级功能、厂商支持或合同保障的企业,应分别评估可选方案。
应该选择哪个数据库?
最合适的选择取决于您的应用程序和现有基础设施。
以下情况可选择 MariaDB:
- 您的软件官方支持 MariaDB。
- 您更倾向于 MariaDB 的开发生态系统和现有功能。
- 您使用的 Linux 环境已将 MariaDB 作为受支持的数据库。
- 您希望为 WordPress 或其他兼容的应用程序选择一个受支持的数据库。
以下情况可选择 MySQL:
- 您的应用程序明确要求使用 MySQL。
- 您依赖 MySQL 特有的 JSON 行为或数据库功能。
- 您的开发工具或厂商支持需求更适合 MySQL。
- 您正在维护一个运行稳定的现有 MySQL 环境。
对于现有网站,继续使用其受支持的数据库通常是最稳妥的决定。更换数据库需要进行迁移,还可能带来兼容性问题,却不能保证性能得到提升。
可以在 VPS 上运行 MariaDB 或 MySQL 吗?
可以。这两个数据库都能在兼容的 Linux VPS 上运行,让您能够自主控制数据库版本、配置、备份和资源分配。
对于定制应用程序,或需要比传统共享主机更大管理灵活性的项目,这会很有用。
不过,数据库管理还涉及安全更新、访问限制、监控和恢复规划。
如果您刚开始接触虚拟服务器,我们的《VPS 托管指南》介绍了其工作原理和适用场景。
常见问题
不能一概而论。MariaDB 和 MySQL 的功能及开发重点不同。哪个更合适,取决于您的应用程序要求、兼容性和工作负载。
有时会更快,但性能因工作负载和数据库版本而异。合理建立索引、调整配置和优化查询是提升性能更可靠的方法。
很多情况下可以,但迁移前需要进行兼容性测试。JSON 存储、身份验证、SQL 行为和复制方面的差异可能会影响现有应用程序。
可以。只要安装环境满足 WordPress 的数据库要求,WordPress 官方就支持 MariaDB 和 MySQL。
结论
MariaDB 和 MySQL 都是功能完善的关系型数据库系统,没有哪一个必然更好。
MariaDB 拥有独立发展的生态系统,提供自己的功能和存储引擎选项。MySQL 则获得了广泛的应用程序支持,并拥有成熟的商业生态系统。
对大多数网站所有者来说,最好的决定是使用其应用程序和托管环境官方支持的数据库。应重点关注兼容性、维护和性能测试,而不是根据笼统的速度说法更换数据库。