本文共 1358 字,大约阅读时间需要 4 分钟。
非常奇怪,MySQL 5.6 在此轮测试中居然表现异常。在 8 个线程时相差不大,在 16 个线程时变现最佳。但更高的并发下性能就迅速下降,甚至比 MySQL 5.5 还差。而 MariaDB 10.0 则比 MariaDB 5.5 表现上要差一些,但没那么明显。
而响应时间图表则表示比较好而且平滑:MySQL-5.6 和 MariaDB-10.0 看起来要稍微好一些,意味着它们能更好的分配 CPU 周期。
声明: 此次测试没有使用线程池。Oracle 的线程池实现已经闭源了,因此没法进行测试和使用,如果在 MariaDB 上使用线程池的话就显得有点不公平。
如果你想了解线程池对性能的影响,可查看之前的两篇文章:
第二个测试:OLTP 读写测试
这个图跟前一个测试差不多,MySQL 5.6 和 MariaDB 10.0 在性能表现上都比 5.5 版本要下滑不少,在高负载的情况下,下滑了 10% 左右。
这是一个人所共知的事实,MySQL 5.5 在高负载下因为同步的 flush 操作导致的性能下滑。响应时间图相对要好一些:这是一个好消息,5.5 版本在 64 个线程或者更多线程的情况下响应时间差了很多。而 MySQL 5.6 和 MariaDB 10.0 的适应性 flush 算法似乎工作良好。
这里还有一个问题:如果你使用多个缓冲池实例,你将会看到写操作延迟更厉害。上面的结果中,只读测试使用了 16 个缓冲池,而读写测试只用了 1个。结论: MySQL-5.6 性能表现比前一个版本要差,特别是高并发的情况下。这与 Oracle 发布的测试结果不符。我只能推测为什么结果差异那么大,我猜是 Oracle 闭源的线程池以及 Oracle 在更大的机器上进行测试导致。 使用单个缓冲池情况下不需要担心写延迟的问题。同时 MySQL 5.6 允许高达 512G 的 redo 日志可降低同步 flush 操作。此次测试的脚本可通过下面地址访问:
欢迎大家重做这个测试并与我们分享测试结果。
文章转自:
转载地址:http://efaxx.baihongyu.com/