教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 数据库 > MYSQL教程 >

如何使用mysql自带的压力测试工具mysqlslap

时间:2012-11-29 14:51来源:未知 作者:ken 点击:

mysqlslap

MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试。 "man mysqlslap" 可以看到有下面一条示例:mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"  --query="SELECT * FROM a" --concurrency=50 --iterations=200 -uroot -p
 

常用参数示例

注: 以下示例中 "-uroot -p" 指定访问数据库的用户为root,需要输入密码。和 mysql 命令的参数含义一致,可自行修改。

指定并发数: —concurrency

$ mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p

指定查询总次数: —number-of-queries

见上例

重复多次(迭代多次): —iterations

$ mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info  -uroot -p

指定引擎: —engine

$ mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info

输出语句而不执行: —only-print

$ mysqlslap -a --only-print -uroot -p

参数参考:

-auto-generate-sql, -a
自动生成测试表和数据(用系统自己生成的SQL语句来测试)站长教学网 eduyo.com

-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条语句后断开重连

--delimiter=";"  执行分隔符

-debug-info, -T
打印内存和CPU的信息

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

mysqladmin

动态监测 MySQL 数据库性能,30秒一次

$ mysqladmin -uroot -p ext -ri30

select benchmark

使用这个语句可以做压力测试:

select benchmark( 5000000, md5( 'test' ) );
(责任编辑:ken)
TAG标签: mysql 压力测试 mysqlslap
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容