MySQL 8.0(InnoDB)和 MariaDB 10.3.7(MyRocks)基准测试对比: https://minervadb.com/index.php/2018/06/01/benchmarking-innodb-and-myrocks-performance-using-sysbench/
MariaDB 10.1 和 MySQL 5.7 在商用硬件上的性能对比: https://mariadb.org/maria-10-1-mysql-5-7-commodity-hardware/
MySQL 8.0 和 MariaDB 10.3.5 性能对比及 UTF8 的影响: http://dimitrik.free.fr/blog/archives/2018/04/mysql-performance-80-and-utf8-impact.html
复制
两个数据库都提供了将数据从一个服务器复制到另一个服务器的功能。它们的主要区别是大多数 MariaDB 版本允许你从 MySQL 复制数据,这意味着你可以轻松地将 MySQL 迁移到 MariaDB。但反过来却没有那么容易,因为大多数 MySQL 版本都不允许从 MariaDB 复制数据。
此外,值得留意的是,MySQL GTID 差别于 MariaDB GTID,所以将数据从 MySQL 复制到 MariaDB 后,GTID 数据将相应地做出调解。
以下是这两个数据库在复制配置方面的一些差别:
MySQL 的默认二进制日记格式是基于行的,而在 MariaDB 中,默认的二进制日记格式是混淆式的。
log_bin_compress——这个配置决定了是否可以压缩二进制日记。这个增强功能是 MariaDB 独有的,因此 MySQL 不支持。
MySQL 和 MariaDB 之间的不兼容性
MariaDB 的文档中列出了 MySQL 和 MariaDB 之间的数百个不兼容问题。因此,我们无法通过简单的方案在这两个数据库之间进行迁移。
大多数数据库管理员都盼望 MariaDB 只是作为 MySQL 的一个 branch,如许就可以轻松地在两者之间进行迁移。但从最新发布的几个版本来看,这种想法是不实际的。MariaDB 实际上是 MySQL 的一个 fork,这意味着在它们之间进行迁移须要思量很多东西。
存储引擎
MariaDB 比 MySQL 支持更多的存储引擎范例。但话说回来,数据库可以支持多少个存储引擎并不重要,重要的是哪个数据库可以支持适合你需求的存储引擎。
MySQL 支持的存储引擎包括:InnoDB、MyISAM、Memory、CSV、Archive、Blackhole、Merge、Federated、Example。
在 Linux 上安装
当你在某些 Linux 发行版上安装 MySQL 时,末了大概安装的是 MariaDB,因为它是很多(不是全部)Linux 发行版的默认设置。
Red Hat Enterprise/CentOS/Fedora/Debian 发行版默认会安装 MariaDB,而其他发行版(如 Ubuntu)默认安装 MySQL。
云平台上的可用性
MariaDB 可作为运行在 Amazon Web Services(AWS)、微软 Azure 和 Rackspace Cloud 上的服务。
MySQL 在上面提到的三个平台上也是可用的,同时还可以作为托管服务在谷歌云服务平台上运行。
因此,假如你正在使用谷歌云平台,并盼望云提供商为你管理服务,那么可以思量使用 MySQL,除非你盼望自己安装和管理 MariaDB 实例。
许可
MariaDB 接纳了 GPL v2 许可,而 MySQL 提供了两个许可选项——GPL v2(用于社区版)和企业许可。
MySQL 的两个许可之间的主要区别在于可用的功能和支持服务。用户可以使用 MariaDB 的所有功能,但对于 MySQL 来说并非如此。MySQL 的社区版不包罗线程池等功能,而这些功能会对数据库和查询性能产生庞大影响。
发布频率和更新
通常,MariaDB 的发布频率比 MySQL 更频仍。太高的发布频率既有利也有弊。从好的方面来说,用户可以更及时地收到功能和错误修复。从不好的方面来说,为了让 MariaDB 保持最新的状态,须要更多的工作量。
技术支持
MySQL 的支持团队(包括 MySQL 开辟职员和支持工程师)为客户提供全天候服务。甲骨文提供了多种支持选项,包括扩展支持、持续支持和高级支持,详细取决于客户的要求。MariaDB 支持团队的支持工程师包括了 MariaDB 和 MySQL 数据库专家(因为很多功能最初是由 MySQL 团队开辟的),他们为生产体系提供全天候的企业级支持。
正在进行中的开辟
MySQL 的开辟者主要是甲骨文的 MySQL 团队,而 MariaDB 开辟通过公开投票和邮件列表讨论的方式进行。此外,任何人都可以向 MariaDB 提交补丁,MariaDB 开辟团队会思量将这些补丁添加到主代码库中。因此,从某种程度上说,MariaDB 是由社区开辟的,而 MySQL 主要由甲骨文开辟。
结论