参考文献:http://my.oschina.net/costaxu/blog/108568

上面网友详细的列举了用mysqlslap对mysql的压力测试结果,我也照葫芦画瓢试了一次,结果如下:

以下命令代表:用10个并发连接,对一个有10个int列,10个varchar列,两个索引的表进行写操作

mysqlslap   --concurrency= --iterations=  --number-int-cols=  --number-char-cols= -a --auto-generate-sql-add-autoincrement --number-of-queries=  --auto-generate-sql-load-type=write -auto-generate-sql-secondary-indexex=  --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info

结果:

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.694 seconds
Minimum number of seconds to run all queries: 0.694 seconds
Maximum number of seconds to run all queries: 0.694 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 3.446 seconds
Minimum number of seconds to run all queries: 3.446 seconds
Maximum number of seconds to run all queries: 3.446 seconds
Number of clients running queries:
Average number of queries per client:

TPS:

myisam=7205

innodb=1451

通过改变参数--concurrency=50和--concurrency=100来更改并发数,分别试验两次,结果如下:

mysqlslap   --concurrency= --iterations=  --number-int-cols=  --number-char-cols= -a --auto-generate-sql-add-autoincrement --number-of-queries=  --auto-generate-sql-load-type=write -auto-generate-sql-secondary-indexex=  --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 8.991 seconds
Minimum number of seconds to run all queries: 8.991 seconds
Maximum number of seconds to run all queries: 8.991 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 46.858 seconds
Minimum number of seconds to run all queries: 46.858 seconds
Maximum number of seconds to run all queries: 46.858 seconds
Number of clients running queries:
Average number of queries per client:
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 9.687 seconds
Minimum number of seconds to run all queries: 9.687 seconds
Maximum number of seconds to run all queries: 9.687 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 57.171 seconds
Minimum number of seconds to run all queries: 57.171 seconds
Maximum number of seconds to run all queries: 57.171 seconds
Number of clients running queries:
Average number of queries per client: mysqlslap --concurrency= --iterations= --number-int-cols= --number-char-cols= -a --auto-generate-sql-add-autoincrement --number-of-queries= --auto-generate-sql-load-type=write -auto-generate-sql-secondary-indexex= --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info Benchmark
Running for engine myisam
Average number of seconds to run all queries: 7.060 seconds
Minimum number of seconds to run all queries: 7.060 seconds
Maximum number of seconds to run all queries: 7.060 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 44.711 seconds
Minimum number of seconds to run all queries: 44.711 seconds
Maximum number of seconds to run all queries: 44.711 seconds
Number of clients running queries:
Average number of queries per client:
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 6.730 seconds
Minimum number of seconds to run all queries: 6.730 seconds
Maximum number of seconds to run all queries: 6.730 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 39.591 seconds
Minimum number of seconds to run all queries: 39.591 seconds
Maximum number of seconds to run all queries: 39.591 seconds
Number of clients running queries:
Average number of queries per client:

并发50 myisam   TPS= 5354

并发50 innodb    TPS= 961

并发100 myisam TPS= 7252

并发100 innodb  TPS= 1186

下面又测试了读的性能:

mysqlslap   --concurrency= --iterations=  --number-int-cols=  --number-char-cols= -a --auto-generate-sql-add-autoincrement --auto-generate-sql-unique-query-number=  --auto-generate-sql-load-type=key --number-of-queries=  --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 4.172 seconds
Minimum number of seconds to run all queries: 4.071 seconds
Maximum number of seconds to run all queries: 4.274 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 4.094 seconds
Minimum number of seconds to run all queries: 4.070 seconds
Maximum number of seconds to run all queries: 4.118 seconds
Number of clients running queries:
Average number of queries per client: mysqlslap --concurrency= --iterations= --number-int-cols= --number-char-cols= -a --auto-generate-sql-add-autoincrement --auto-generate-sql-unique-query-number= --auto-generate-sql-load-type=key --number-of-queries= --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 4.212 seconds
Minimum number of seconds to run all queries: 4.134 seconds
Maximum number of seconds to run all queries: 4.290 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 4.232 seconds
Minimum number of seconds to run all queries: 4.125 seconds
Maximum number of seconds to run all queries: 4.339 seconds
Number of clients running queries:
Average number of queries per client:

具体数值不用算了,TPS都在10000+

结论:

myisam和innodb两种引擎下,读时性能差不多,写时myisam比innodb要强很多

另外,读时TPS=10000+,这个结果我压根就不信,完全随机的读硬盘的话,硬盘的IOPS大概也就几百左右,因此10000+的结果原因可能为:

a: 测试表中数据太少,数据基本都被缓存了,直接都是从缓存中读的数据

b:mysqlslap生成的SQL语句不够随机,读时永远都是那么几条数据,肯定就命中缓存了

所以以上结果仅供参考罢了。。。。

参考文献中的作者思路很清晰,但用并发数=2来测试未免有点太小气了,所以他的数值肯定没有什么参考价值了

用mysqlslap压测mysql的更多相关文章

  1. mysqlslap压测

    mysqlslap 是MySQL自带的压测工具: -P --create-schema=test -S /tmp/mysql_sandbox18601.sock --number-of-queries ...

  2. sysbench 环境安装,压测mysql

    源码路径:https://github.com/akopytov/sysbench 版本linux 6.8sysbench 0.5mysql 5.6.29 1.安装pip略 2.pip 安装bzr p ...

  3. jmeter压测mysql数据库

    jmeter连接并压测mysql数据库,之前一直想用jmeter一下测试mysql数据库的性能,今天偶然看到一篇博客,于是乎开始自己动手实践. 一.准备工作 1.安装好mysql数据库,可以安装在本地 ...

  4. MySQL mysqlslap压测

    200 ? "200px" : this.width)!important;} --> 介绍 mysqlslap是mysql自带的一个性能压测工具:mysqlslap用于和其 ...

  5. 【Jmeter】压测mysql数据库中间件mycat

    背景 因为博主所负责测试的项目需要数据库有较大的吞吐量,在最近进行了升级,更新了一个数据库中间件 - - mycat.查询了一些资料,了解到这是阿里的一个开源项目,基于mysql,是针对磁盘的读与写, ...

  6. 用sysbench压测MySQL,通过orzdba监控MySQL

    1.1 安装sysbench wget https://codeload.github.com/akopytov/sysbench/zip/0.5 unzip 0.5 cd sysbench-0.5/ ...

  7. mysqlslap 压测工具使用说明

    PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...

  8. 【Jmeter 压测MySql连接问题】

    JDBC Request :Cannot load JDBC driver class 'com.mysql.jdbc.Driver'解决办法   在Jmeter中run JDBC Request时, ...

  9. sysbench压测mysql

    MySQL数据库测试 select   1.先创建数据库test,再准备数据 time /usr/local/sysbench/bin/sysbench --test=oltp --num-threa ...

随机推荐

  1. Java设计模式(学习整理)---适配模式

    设计模式之Adapter(适配器) 1.定义: 将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 2.为何使用? 我们经常碰到要将两 ...

  2. 读书笔记之 - javascript 设计模式 - 享元模式

    本章探讨另一种优化模式-享元模式,它最适合于解决因创建大量类似对象而累及性能的问题.这种模式在javascript中尤其有用,因为复杂的javascript代码很快就会用光浏览器的所有可用内存,通过把 ...

  3. css3 iphone开关 移动端开关、按钮、input

    css3  iphone开关  移动端开关.按钮.input <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  4. php运用curl触发后台脚本不超时执行某项任务

    运用curl 设置超时,触发后台脚本执行 例如一些需要长时间等待的任务,如创建数据库,下载网络图片等 $ch = curl_init();//$ch资源可以请求多个连接 curl_setopt($ch ...

  5. js更新页面,随机更新数字

    代码1: <script> function getRandom(){ var i = Math.random()*40+160; document.getElementById(&quo ...

  6. Activity的"singleTask"之谜

    官方文档称 以这种方式启动的Activity总是属于一个任务的根Activity.果真如此吗?本文将为你解开Activity的"singleTask"之谜. 任务(Task)是个什 ...

  7. dotnet core多平台开发体验

    前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...

  8. paramiko模块实现堡垒机

    通过SSHClient 执行命令 """通过用户名密码验证""" import paramiko # 创建 SSH 对象 ssh = par ...

  9. 学习Swift -- 继承

    继承 一个类可以继承另一个类的方法(methods),属性(properties)和其它特性.当一个类继承其它类时,继承类叫子类,被继承类叫超类(父类). 在 Swift 中,子类可以调用和访问父类的 ...

  10. iOS中默认样式修改-b

    项目中有大量的UITableView都需要显示sectionHeader.iOS中默认sessionHeader上的textLabel样式跟设计图不符. 按照我们之前的解决方案,是在每个UITable ...