Mysql5.6 易发生死锁

vga 发布于 2013/07/21 15:41
阅读 1K+
收藏 0

今天在并发测试中(表有 100W 记录,每组测试 10w)发现:Mysql5.6比较容易发生死锁,而 MariaDB 5.5.32则一次也未发生。代码是相同的。

 

加载中
0
vga
vga

Mysql5.6.10 在10w 条记录操作中 要发生5-6次死锁。

os: windows 2003

0
小六哥
小六哥
是不是 存储引擎引起的
0
vga
vga
只有支持 事物型引擎 如 innodb  才有可能 发生死锁。myisam 不存在此问题
0
vga
vga
http://www.verydemo.com/demo_c152_i41301.html
vga
vga
据MySQL官方说法是在InnoDB内部改进了锁机制,但为什么会产生大量死锁,原因还不清楚。
0
vga
vga

MySQL 5.6 vs MySQL 5.5 性能对比初步测试结果

-
-
导读:这里出现了一个比较奇怪的现象,MySQL5.6的read only测试的结果反而要比MySQL5.5差了10%左右。Percona公司的Peter Zaitsev在测试时也有这个现象,Peter在其测试报告里没有分析出具体是什么原因导致这个结果,只是表示还需要一段时间才能更好的了解MySQL5.6的一些原理。不过在read write上5.6倒是体现出明显的优势。

在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的计划提上日程。

总结:在这次测试中,无论是只读还是读写,MySQL5.6的性能都明显好于MySQL5.5,尤其在128线程的读写模式下,MySQL5.6的性能几乎6倍于MySQL5.5。我们猜测MySQL 5.6在多CPU核数的利用上进行了优化,因此在硬件配置好的机器上更能体现出优势。
0
vga
vga

不过,在这次的测试中,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内部改进了锁机制,但为什么会产生大量死锁,原因还不清楚。

0
vga
vga
后来的版本已经没有问题了
返回顶部
顶部