最近,将部分开发和测试环境的mysql升级到5.7之后,今天抽时间测试了下5.6和5.7 PK查询的性能,使用mysqlslap进行测试,测试结果发现在低配下,percona 5.6.31大约比5.7.15快20-30%左右,percona 5.7.15比mysql企业版5.7.16快10%左右,如下:

--mysql企业版

mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 72.719 seconds
Minimum number of seconds to run all queries: 72.719 seconds
Maximum number of seconds to run all queries: 72.719 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

--percona 5.7.15

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 66.628 seconds
Minimum number of seconds to run all queries: 66.628 seconds
Maximum number of seconds to run all queries: 66.628 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 66.278 seconds
Minimum number of seconds to run all queries: 66.278 seconds
Maximum number of seconds to run all queries: 66.278 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

--percona 5.6.31

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 55.878 seconds
Minimum number of seconds to run all queries: 55.878 seconds
Maximum number of seconds to run all queries: 55.878 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 57.169 seconds
Minimum number of seconds to run all queries: 57.169 seconds
Maximum number of seconds to run all queries: 57.169 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 51.820 seconds
Minimum number of seconds to run all queries: 51.820 seconds
Maximum number of seconds to run all queries: 51.820 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 52.817 seconds
Minimum number of seconds to run all queries: 52.817 seconds
Maximum number of seconds to run all queries: 52.817 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

因为mysql 5.7相比mysql 5.6增加了很多新的特性、同时新增了很多后台线程,所以在达到mysql 5.6的最大并发之前,mysql 5.6在性能上比mysql 5.7更高并不奇怪。因为我们大量服务器部署于阿里云和虚拟化环境,所以不打算也不计划测试在64GB以上的环境。后续会测试在16C/16GB和16C/32GB环境下两者的情况。

上述测试基于centos 7.2,linux内核3.10。

同时,需要注意的是,在不同的vm实例中,即使配置和型号完全相同,也有可能出现TPS上下相差10-20%的情况,这一点尤其需要注意,因为任何时候cpu/内存/服务器进程/线程等都可能在不同程度的运行,即使是空环境亦如此。另外,还需要注意不同的linux/内核版本可能导致性能相差比较大。

在另一个centos 6.3,内核2.6.32的VM实例中,percona 5.6.31的测试如下(平均TPS达到22000)(7.0相同配置下平均18000左右):

[root@dev-server1 ~]# mysqlslap -h172.18.30.193 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -pLd123123
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 42.936 seconds
Minimum number of seconds to run all queries: 42.936 seconds
Maximum number of seconds to run all queries: 42.936 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.193 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -pLd123123
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 43.359 seconds
Minimum number of seconds to run all queries: 43.359 seconds
Maximum number of seconds to run all queries: 43.359 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.193 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -pLd123123
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 47.033 seconds
Minimum number of seconds to run all queries: 47.033 seconds
Maximum number of seconds to run all queries: 47.033 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

------------晚上临时找了两个环境,测试了下centos 6.5 8C/16GB阿里云下,如下-------------------

percona 5.7.15

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 28.632 seconds
Minimum number of seconds to run all queries: 28.632 seconds
Maximum number of seconds to run all queries: 28.632 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 26.167 seconds
Minimum number of seconds to run all queries: 26.167 seconds
Maximum number of seconds to run all queries: 26.167 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# 2016-11-10T11:37:06.099118Z mysqld_safe mysqld from pid file /usr/local/Percona-Server-5.7.15-9-Linux.x86_64.ssl101/data/iZbp14bngbtxcrrha173qvZ.pid ended

[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 26.266 seconds
Minimum number of seconds to run all queries: 26.266 seconds
Maximum number of seconds to run all queries: 26.266 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 25.370 seconds
Minimum number of seconds to run all queries: 25.370 seconds
Maximum number of seconds to run all queries: 25.370 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=600 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 24.399 seconds
Minimum number of seconds to run all queries: 24.399 seconds
Maximum number of seconds to run all queries: 24.399 seconds
Number of clients running queries: 600
Average number of queries per client: 1666

=====================

percona 5.6.31

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 29.882 seconds
Minimum number of seconds to run all queries: 29.882 seconds
Maximum number of seconds to run all queries: 29.882 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 25.210 seconds
Minimum number of seconds to run all queries: 25.210 seconds
Maximum number of seconds to run all queries: 25.210 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 26.084 seconds
Minimum number of seconds to run all queries: 26.084 seconds
Maximum number of seconds to run all queries: 26.084 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=600 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 24.896 seconds
Minimum number of seconds to run all queries: 24.896 seconds
Maximum number of seconds to run all queries: 24.896 seconds
Number of clients running queries: 600
Average number of queries per client: 1666

基本上可以看出,在8C的配置下,mysql 5.6和5.7的性能已经比较接近的,按说配置再增加的情况下,5.7的扩展性会比5.6更好,且新增的很多额外线程的消耗会被抵销。

mysql 5.7.15 vs mysql 5.6.31性能测试以及不同linux内核性能比较的更多相关文章

  1. [MySQL Reference Manual]15. 其他存储引擎

    15. 其他存储引擎 15. 其他存储引擎 15.1 设置存储引擎 15.2 MyISAM存储引擎 15.2.1 MyISAM启动选项 15.2.2 Key的空间要求 15.2.3 MyISAM表存储 ...

  2. PowerDesigner 15设置mysql主键自动增长及基数

    PowerDesigner 15设置mysql主键自动增长及基数 1.双击标示图,打开table properties->columns,  如图点击图标Customize Columns an ...

  3. mysql 5.7.15单机主从快速搭建并配置复制表到不同库

    一直以来因为线上系统盘中风控计算过于消耗资源,导致服务器负载太高,时常影响盘中交易的稳定性,最近决定了将风控拆分到独立的库进行计算,并进行回填操作. 总体来说,是将部分风控计算相关的表同步到备库,但是 ...

  4. Delphi 7连接MySql 5.5.15

    原文:http://blog.csdn.net/akof1314/article/details/6822902/ 网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的 ...

  5. Centos 6.4上面用Shell脚本一键安装mysql 5.6.15

    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15  #!/bin/bash if [ `uname -m` == "x86_64" ];then machi ...

  6. LNMP搭建(CentOS 6.3+Nginx 1.2.0+PHP 5.3.15(fpm)+ MySQL 5.5.35)

    Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 ...

  7. mysql查超过15分钟未付款的订单,更新为失效状态

    个人打开自己的订单时,才检查超过15分钟未付款的订单, 暂不使用机器人,更新状态, Difference counter 差分计数器订单超过15分钟.mysql的时间戳差分比较 $sql =  TIM ...

  8. Delphi 7连接MySql 5.5.15(转)

    网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的方法,以备所需.系统环境:Windows XP SP3软件环境:Delphi 7 .mysql-installer- ...

  9. (3.15)mysql基础深入——mysql默认数据库/系统数据库

    (3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...

随机推荐

  1. CCNA网络工程师学习进程(1)网络的基本概述

        在互联网快速发展的今天,了解互联网成为一项必须的技能,因此在学习编程之余学习如何配置网络还是很有必要的. 本系列博客计划分为三个部分,包括思科CCNA.CCNP和华为的网络工程师认证有关的知识 ...

  2. Spring注意事项(各部分理解)

    (1),每一个bean属性,就是一个普通的java类. 类有属性,有方法,如何交给容器管理.(注解的方式,xml方式配置) (2),通过Bean来实例化对象的方式 1.通过构造器(一般是无参的默认构造 ...

  3. 设置Form窗体中的控件的属性

    借助于反射,可获取当前窗体中的所有控件,根据需要设置它们的属性. Font defaultFont = new System.Drawing.Font("Microsoft Sans Ser ...

  4. 【WP开发】WebView控件应用要点

    WebView控件我就不多作详细的介绍,相信大家都懂的,就算你没用过,你看他的名字和长相都知道它的用途了.就是用来显示HTML内容的. 在WP 8.1的Runtime App中,这个控件大致有以下几个 ...

  5. Android入门(三)Activity-生命周期与启动模式

    原文链接:http://www.orlion.ga/432/ 一.活动的生命周期 1.返回栈 Android中的活动是可以重叠的,我们每启动一个新的活动,就会覆盖在原活动之上,然后点击Back键会销毁 ...

  6. Aspect Oriented Programming

    AOP(Aspect Oriented Programming),面向切面编程(也叫面向方面)是目前软件开发中的一个热点.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度 ...

  7. 小实例窥探dotnet垃圾回收

    今天项目调试时发现VS中有下面这样的现象. 说明,file.ServerLocation是一个完整的物理路径.第三句代码是错误的,保留只是因为它使用了"s"字符串.   个人认为当 ...

  8. WTF Forms – 使用 CSS 实现用户体验更好的表单

    WTF forms 借助 CSS 提供友好的 HTML 表单控件,专为 IE9+ 以及最新的 Chrome.Safari 和 Firefox 浏览器.以文件输入控件的改进,使用 label 包裹在 i ...

  9. HTML5 Dashboard – 那些让你激动的 Web 技术

    HTML5 Dashboard 是一个 Mozilla 推出的项目,里面展示了最前沿的 HTML5,CSS3,JavaScript 技术.每一项技术都有简洁,在线演示以及详细的文档链接.这些技术将成为 ...

  10. SQLServer学习笔记系列8

    一.写在前面的话 最近一直在思考一个问题,什么才能让我们不显得浮躁,真正的静下心来,用心去感受,用心去回答每个人的问题,用心去帮助别人.现实的生活,往往让我们显得精疲力尽,然后我们仔细想过没用,其实支 ...