MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册。

–auto-generate-sql, -a

自动生成测试表和数据

–auto-generate-sql-load-type=type

测试语句的类型。取值包括:read,key,write,update和mixed(默认)。

–number-char-cols=N, -x N

自动生成的测试表中包含多少个字符类型的列,默认1

–number-int-cols=N, -y N

自动生成的测试表中包含多少个数字类型的列,默认1

–number-of-queries=N

总的测试查询次数(并发客户数×每客户查询次数)

–query=name,-q

使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。

–create-schema

测试的schema,MySQL中schema也就是database

–commint=N

多少条DML后提交一次

–compress, -C

如果服务器和客户端支持都压缩,则压缩信息传递

–concurrency=N, -c N

并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者–delimiter参数指定的值做为分隔符

–engine=engine_name, -e engine_name

创建测试表所使用的存储引擎,可指定多个

–iterations=N, -i N

测试执行的迭代次数

–detach=N

执行N条语句后断开重连

–debug-info, -T

打印内存和CPU的信息

–only-print

只打印测试语句而不实际执行

它的使用语法如下:

shell>/usr/local/mysql/bin/mysqlslap [options]

常用参数【options】详细介绍:

--concurrency代表并发数量,多个可以用逗号隔开。例如:--concurrency=50,200,500

--engines代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb,memory

--iterations代表要在不同并发环境下,各自运行测试多少次。

--auto-generate-sql 代表用mysqlslap工具自己生成的SQL脚本来测试并发压力。

--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始,

--auto-generate-sql-load-type 代表要测试的环境是读操作还是写操作还是两者混合的(read,write,update,mixed)

--number-of-queries 代表总共要运行多少条查询。

--debug-info 代表要额外输出CPU以及内存的相关信息。

--number-int-cols 代表示例表中的INTEGER类型的属性有几个。

--number-char-cols代表示例表中的vachar类型的属性有几个。

--create-schema 代表自定义的测试库名称。

--query 代表自定义的测试SQL脚本。

说明:

测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,如果已经存在则先删除。可以用-only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹。

实验步骤:

练习一:

单线程测试。测试做了什么。

>./bin/mysqlslap -a -uroot -p111111

多线程测试。使用--concurrency来模拟并发连接。

> ./bin/mysqlslap -a -c 100 -uroot -p111111

迭代测试。用于需要多次执行测试得到平均值。

> ./bin/mysqlslap -a -i 10 -uroot -p111111

练习二:

> ./bin/mysqlslap -auto-generate-sql-add-autoincrement -a -uroot -p111111

> ./bin/mysqlslap -a -auto-generate-sql-load-type=read -uroot -p111111

> ./bin/mysqlslap -a -auto-generate-secondary-indexes=3 -uroot -p111111

> ./bin/mysqlslap -a -auto-generate-sql-write-number=1000 -uroot -p111111

> ./bin/mysqlslap --create-schema world -q "select count(*) from City" -uroot -p111111

> ./bin/mysqlslap -a -e innodb -uroot -p111111

> ./bin/mysqlslap -a --number-of-queries=10 -uroot -p111111

练习三:

执行一次测试,分别50和100个并发,执行1000次总查询:

> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p111111

50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次:

> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p111111

测试同时不同的存储引擎的性能进行对比:

>./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p111111

mysql压力测试教程_Mysqlslap MySQL压力测试工具 简单教程相关推荐

  1. Scyther形式化验证工具简单教程

    Scyther形式化验证工具 Scyther是一种自动化的安全协议验证工具.在协议的安全性验证方面有着广泛的应用. 下面介绍其安装方法以及使用教程. 安装方法 Scyther工具在Windows 10 ...

  2. 【MySQL】【高可用】从masterha_master_switch工具简单分析MHA的切换逻辑

    简介:masterha_master_switch作为一个切换工具被集成在MHA程序包中, 安装:编译安装MHA manager后会在/usr/local/bin/中生成二进制可执行程序masterh ...

  3. 用python做数据分析教程_Python运用于数据分析的简单教程

    最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内容如下: 数据导入 导入本 ...

  4. arcgis python实例_arcgis python脚本工具实例教程—栅格范围提取至多边形要素类

    arcgis python脚本工具实例教程-栅格范围提取至多边形要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:提取栅格数据的范围, ...

  5. Python网络爬虫简单教程——第一部

    Python网络爬虫简单教程--第一部 感谢,如需转载请注明文章出处:https://blog.csdn.net/weixin_44609873/article/details/103384984 P ...

  6. [软件工具]左键连发工具左键连点工具使用教程

    左键连发软件是一个可以点击一下自动左键连续点击指定次数的软件,比如你设置20次,当你点击一次松开鼠标后,会自动左键连续点击20次.具体使用教程为,我们打开软件 我们可以设置连发次数,默认15次,你可以 ...

  7. mysql smack_MySQL压力测试工具super-smack简单教程

    一.源码下载       下载地址:http://vegan.net/tony/supersmack/源码:二.编译及安装       编译环境:Ubuntu Server 9.10 64位配置编译选 ...

  8. 数据库MySQL的性能基线收集及压力测试

    建立基线的作用: 计算机科学中,基线是项目储存库中每个工件版本在特定时期的一个"快照". 比如我们现在有并发事物,那么在某时刻发起一个事物会产生当前数据的快照,那么这个快照就相当理 ...

  9. Mycat+Mysql分布式架构改造和性能压力测试

    架构实现 Mycat作为数据库高可用中间件具备很多的功能,如负载均衡,分库分表,读写分离,故障迁移等.结合项目的实际情况,分库分表功能对于关联查询有很高的要求,需要从业务角度考虑分库分表后的关联查询S ...

最新文章

  1. Django框架之第二篇
  2. python判断二叉树是否为平衡二叉树
  3. java线程饥饿死锁_java并发-线程饥饿死锁测试
  4. HDU 2072 单词数
  5. 李宏毅线性代数笔记4:向量
  6. Ubuntu18.04 安装Python2.7.6
  7. HDU - 6333 Problem B. Harvest of Apples(莫队变形+思维+组合数学,好题)
  8. 场景感知:CNN方法对三维重建/slam/实时定位的一些Base改进
  9. 服务器网盘系统怎么装,云服务器上怎么安装操作系统
  10. 使用AvalonDock制作WPF多标签浏览器(一)
  11. 串口 能 按位传输吗_、 迪文串口屏TTL与主控板RS232电平信号转换方案
  12. maximum call stack size exceeded ajax,Maximum call stack size exceeded error
  13. Dubbo限流方式源码阅读
  14. WEB前端是干什么的?
  15. 人体十二经络的走向动态图,人手一份!
  16. 【数据结构】AOE网——关键路径
  17. mysql统计类似SQL语句查询次数
  18. 经典策略之Dual Trust策略
  19. Recoil的简单实践和思考
  20. R语言安装Sampling包

热门文章

  1. 探子报!双十一紧急军情!!!
  2. java类功能说明注释添加,IDEA添加Java类注释模版的方法
  3. PyObject_CallMethod self问题
  4. 步态识别 GaitSet
  5. 复数的物理意义是什么
  6. CNN网络优化加速汇总
  7. 使用Java泛型实现快速排序(快排,Quicksort)
  8. shell下function报错
  9. vr rgb yuv学习资料整理
  10. 70 Zabbix自定义监控项