MySQL 5.6 vs MySQL 5.5 性能对比初步测试结果
在MySQL 推出第一个5.6的GA版本后,我们对5.6进行了简单的性能对比测试。测试的基本思路是在同一台服务器上(保证硬件环境完全一样),先后安装MySQL 5.6和5.5,使用sysbench工具进行同样的压力测试,对比结果。
?
第一次对比测试
服务器配置:8核CPU+16G内存的HP360服务器
测试压力:sysbench的oltp的性能测试,测试表数据量5000万
?
Read_only结果:
?
Read_write结果:
?
这里出现了一个比较奇怪的现象,MySQL5.6的read only测试的结果反而要比MySQL5.5差了10%左右。Percona公司的Peter Zaitsev在测试时也有这个现象,Peter在其测试报告里没有分析出具体是什么原因导致这个结果,只是表示还需要一段时间才能更好的了解MySQL5.6的一些原理。不过在read write上5.6倒是体现出明显的优势。
?
第二次对比测试
服务器配置:64核CPU+64G内存的HP580服务器
测试压力:sysbench的oltp的性能测试,测试表数据量5000万
?
Read_only结果:
?Read_write结果:
?
在这次测试中,无论是只读还是读写,MySQL5.6的性能都明显好于MySQL5.5,尤其在128线程的读写模式下,MySQL5.6的性能几乎6倍于MySQL5.5。我们猜测MySQL 5.6在多CPU核数的利用上进行了优化,因此在硬件配置好的机器上更能体现出优势。
?
不过,在这次的测试中,MySQL5.6在读写模式下会产生大量的死锁(5.5并没有):
?
read-write(5.6)
16 Threads
32 Threads
64 Threads
128 Threads
deadlocks
avg(max)
111.67(125)
357.67(363)
2740(7087)
1205(3211)
?
据MySQL官方说法是在InnoDB内部改进了锁机制,但为什么会产生大量死锁,原因还不清楚。
?
总的来说,MySQL5.6在InnoDB的性能提升上还是让人有惊喜的,而且还有了等待已久的Online DDL功能,估计我们接下去也会把升级5.6的计划提上日程。