Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1595857
  • 博文数量: 117
  • 博客积分: 2559
  • 博客等级: 少校
  • 技术积分: 4385
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-13 20:08
个人简介

作为初学者,要想取得进步,成为高手,首先应该了解自己的不足之处.

文章分类

全部博文(117)

文章存档

2014年(1)

2013年(25)

2012年(13)

2011年(77)

2010年(1)

分类: Mysql/postgreSQL

2011-06-07 17:18:16

MySQL自带的测试工具mysqlslap

参考

http://dev.mysql.com/doc/refman/5.5/en/mysqlslap.html

mysqlslap运行三部曲

1·创建库、表和数据,这个过程用一个客户端连接完成

2·运行压力测试,这个过程可以有很多客户端连接

3·清理数据,这个过程用一个客户端连接完成

 

举例

1·自己提供SQL语句,设置分隔符为";"50个客户端并发,可以设置多个并发,用逗号隔开,如10,20,30,每个客户端重复进行200次查询

mysqlslap --delimiter=";" \
--create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" \
--query="SELECT * FROM a" --concurrency=50 --iterations=200

 

2·让mysqlslap自己生成SQL语句,并创建两个int列和三个varchar列的表。用5个客户端重复20次查询。不创建表或者插入数据(换言之,用test库和数据)

mysqlslap --concurrency=5 --iterations=20 \

--number-int-cols=2 --number-char-cols=3 \

--auto-generate-sql

 

3·告诉mysqlslap从指定的sql文件中读取语句。

mysqlslap --concurrency=5 \
--iterations=5 --query=query.sql --create=create.sql \
--delimiter=";"

 

帮助信息

-a, --auto-generate-sql 自动生成SQL

--auto-generate-sql-add-autoincrement 自动生成SQL语句,并添加自动增长列

--auto-generate-sql-guid-primary 自动产生guid格式的主键

--auto-generate-sql-load-type=name 指定测试的类型mixedupdatewritekeyread,默认是mixed

--auto-generate-sql-write-number=# 每个线程中产生多少个insert,默认值100

--commit=# X个语句后,执行一次commit

-C, --compress 压缩

-c, --concurrency=name 并发连接线程数,多个并发用逗号隔开,例如--concurrency=10,50,100

--create=name name指定一个sql文件或者sql语句,用来建表

--create-schema=name 创建一个测试用的架构,即MySQL下的库

-e, --engine=name 指定存储引擎

-h, --host=name 连接主机

-i, --iterations=# 重复执行测试的次数

-x, --number-char-cols=name 创建测试表的 char 型字段数量

-y, --number-int-cols=name 创建测试表的 int 型字段数

--number-of-queries=# 总的测试查询次数(并发客户数×每客户查询次数)

--iterations=N, -i N 测试执行的迭代次数

--detach=N 执行N条语句后断开重连

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

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

阅读(2389) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~