低并发场景下Mysql性能测试--新版Mysql QPS 降幅剧增

女主宣言mysql

前几天看了Mark Callaghan的《Sysbench for MySQL 5.0, 5.1, 5.5, 5.6, 5.7 and 8》http://sep9.cn/cvxjwz),一篇关于mysql各版本在低并发场景下性能降低的压测报告,经过各种测试结果对比得出:最大的QPS降幅出如今5.6和5.7这两个版本之间,而且这个降幅一般会超过5.0和5.6版本之间的降幅(此结论为原文做者的观点)。这个结论是怎么来的呢?在此将翻译后的文章分享给你们,但愿对你们有所帮助!sql

注:本文里的网址连接须要***后访问。数据库

PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!服务器

背景简介并发

在分享了将全内存sysbench压测应用于MySQL 5.6, 5.7 和 8的结果以后,我又想探究一下老版本的状况。因而又测试获得了针对于MySQL 5.0, 5.1 及5.5 的结果,做为MySQL 5.6, 5.7 和 8结果的补充,这是基于低并发性能降低系列的又一成果。ide

 

       1.MySQL 4.1 和 5.5版本在性能上表现的并非很是好,所以跳过了这两个版本。性能

       2.最大的QPS降幅出如今5.6和5.7这两个版本之间,而且这个降幅一般会超过5.0和5.6版本之间的降幅,到底发生了什么呢?具体缘由能够参考Bug 86215(http://sep9.cn/ci0hix测试

配置spa

在压测中,使用了upstream 5.0.96, 5.1.72, 5.5.51, 5.6.35, 5.7.17 和 8.0.1测试了MySQL。在8.0.1中,使用了latin1 charset和latin1_swedish_ci collation。本文主要分享的是基于i5 NUC的结果。线程

 

我曾在相同的服务器上编译并运行了MySQL 4.1.22,可是并无分享其结果,主要缘由是该结果表现的不是很好,这一点也验证了印象中的“4.1并非一个很好的版本”的观点。4.0是一个很棒的版本,可是还没让它在拥有gcc 4.7或4.8的Ubuntu 16.04上运行,由于在启动不久后就会出现segfaults(段错误)。

 

在使用的sysbench中,包含了测试运行,而且对MySQL 5.6, 5.7 和 8 在http://sep9.cn/pzrah5里描述了每个引擎中使用的对应的my.cnf文件。这次分享my.cnf文件是针对于i3 NUC,对于i5 NUC,InnoDB buffer pool 和 IO capacity选项能够经过使用这些变量来增长,如下这些是针对5.0、5.一、5.5的my.cnf文件。对于mysqld和sysbench clients,使用了相同的服务器,binlog 是enabled的,但sync-on-commit是disabled的。测试表为4张,每张表有1M数据,测试场景为一、二、4个线程压测,该数据库适合存放在InnoDB buffer pool中。

结果

全部测试的QPS数据在(http://sep9.cn/f0kp1g )里记录,一些测试的图表在下面展现。

 

下表列出了每一个测试中各个版本相对于MySQL 5.0的QPS。当值为0.53时(看MySQL 8列的update-index),那么MySQL 8的QPS是5.0的53%,至关于MySQL 5.0比MySQL 8要快2倍。如前面所述,5.6到5.7性能降低是很是大的,但幸运的是,5.7至8并无重蹈覆辙。

 

这给了咱们但愿,开始,我曾认为随着功能的增长和代码路径的增加,会致使每一个主要版本的性能的持续降低,可是如今看来,大部分问题都出如今了5.7中,或许能够解决这个问题。

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图表

对于update-index,QPS的最大降幅出如今5.6-5.7。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

对于update-nonindex,QPS的最大降幅出如今5.6-5.7,一样的在5.1-5.5之间也有一个较大的降幅,可是这个在5.6版本中已经解决了。从性能的角度来看,5.5或许是一个糟糕的版本。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

对于read-write.range100,QPS的最大降幅出如今5.6-5.7

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

对于read-write.range10000,QPS的最大降幅出如今5.6-5.7。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

对于read-only.range10,QPS的最大降幅出如今5.6-5.7.

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

对于read-only.range10000,QPS的最大降幅出如今5.6-5.7。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

对于point-query,QPS的最大降幅出如今5.6-5.7。

对于insert,QPS降低的不明显。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

总结

但愿经过本文可以帮助你们了解,为何说最大的QPS降幅出如今5.6和5.7这两个版本之间,而且了解mysql各个版本间低并发场景下性能降低的比例。

 

固然,本文的结论为做者的观点,若是小伙伴们有其余的意见,或者不一样的测试结果,请直接跟原文做者交流,谢谢合做。

 

后续咱们也会继续输出技术干货,请持续关注

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相关文章
相关标签/搜索