上周末来自 Percona 的 Vadim 发布了一份 MariaDB 5.3.4 benchmark results. 而我做为 Monty Program 的新成员,我想补充一些我自己的测试结果。
在 Vadim 测试结果中有个评论说:拿 MariaDB 5.3.4 和 MySQL 5.5 来比较是否公平,应该是跟 MySQL 5.1 进行比较,因为 MariaDB 5.3.4 是基于 MySQL 5.1 的。我想说这问题并不大,因为 MySQL 5.5 和 MySQL 5.1 在 Sysbench 的 OLTP 性能测试结果相差不大。
因此我创建了一个跟 Vadim 类似的 Sysbench 测试环境,包括如下几个测试版本:
MariaDB-5.3.4 – Monty Program 的最新版本,包括 XtraDB 和 InnoDB 插件
Percona-Server 5.1.61 因为它也是和 MariaDB 5.3 一样基于相同的 XtraDB 版本
Percona-Server 5.5.20 – 最新的 Percona Server 版本
MySQL-5.5.20 – 最新的 MySQL 版本
下图是测试结果:
可看到 MariaDB-5.3.4 在性能上比 MySQL 5.5.20 差很多,而 Percona Server 5.1 和 5.5 之间相差也不大,但如果 MariaDB 5.3.4 使用 InnoDB 存储引擎而不是默认的 XtraDB 引擎的话,MariaDB 的性能将超过 Percona Server 5.5 很多。
因此在以后的 MariaDB 版本中我们将会一直提供 InnoDB 存储引擎支持,我们也正在研究为什么 MySQL 5.1 性能比 MariaDB 5.3 还要好,甚至它们使用的是相同的存储引擎。
另外 Sysbench 是一个综合的基准测试工具,真实环境下的负载受多方面的各种因素影响。另外此次测试使用的是固态硬盘,其达到饱和度比普通磁盘要早得多,这个可能也影响了一些测试结果。
如果我能下一个结论,那么我想说,如果你需要最高并发级别的那么请选择 MySQL 5.5 或者是等待 MariaDB 5.5.
如果你的应用包含非常复杂的查询和子查询,那你将会受益于 MariaDB 的 新的优化特性. 另外如果你需要数据库复制功能,那么 MariaDB 5.3 的 group-commit 将比任何一个版本的 MySQL 更强。
测试环境:
- sysbench OLTP multi-table.
- 16 tables with 250K rows each.
- 20G InnoDB buffer pool.
- Data and logs on SSD.
- Dual socket hexacore Xeon with HT enabled (24 logical cores).
你可以下载本次测试的脚本、配置以及测试结果:sysbench-XL-2012-02-21.tar.gz