十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。
MySQL小工具 之 压测Groovy
上一篇 /
下一篇 2012-11-23 22:45:28
/ 个人分类:mysql
用Groovy编写的一个简单的MySQL给压力的工具,原先是用python写的,但是发现MySQLdb在liunx下性能不佳,就改用Groovy来实现了,支持简单的分表,支持useServerPrepStmts51Testing软件测试网-tU!EVA'Q-B
这里有两个版本51Testing软件测试网3M(T%UE'nh~-u(Y
用这个工具来简单的给压力和造数据是不错的选择.51Testing软件测试网,S,B2wO{
Example:
H+r(in#l
pM0import java.util.concurrent.atomic.AtomicLong51Testing软件测试网Y)mP`3w;Ryu+y
51Testing软件测试网!o!Y9O.~.? cMh
CGM4Z
def mt = new mysql_test(url: "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=GBK&useServerPrepStmts=true&cachePrepStmts=true",
3^1Kq|3jIRTv+?0 usr: "test", pwd: "test", table_name: "test")51Testing软件测试网;o2m(X.Y9t,n#pj}
mt.table_num = 1 //分表的数量51Testing软件测试网]4r6VzO$\d:|H
mt.run_times = 2500 //执行的总次数51Testing软件测试网ijJ5x8[q{c;d
mt.thread_num = 100 //启用线程数(连接数),如果是mysql_test_for_thd 此值没有意义
K)j,s6A!Mj6C s
\0 51Testing软件测试网a|p6}Cca
def select_id = new AtomicLong(1L) //设定一个起始的读id51Testing软件测试网
`zV9\t
def update_id = new AtomicLong(1L) //设定一个起始的写id51Testing软件测试网d9P2fT
r:kyqL
8XRJ4b1?I@mr
M0mt.add_sql("""select * from no_id where uuid='#id#'""",
6A1J9d9y8l+G n0 {id -> ["id": select_id.getAndAdd(1)]},51Testing软件测试网/RJ k\0i/x3oS1Mr
100) //加入一个读的SQL ,id从1开始执行一次就加1,读比是100 如果是mysql_test_for_thd 就是启100个线程来执行这个sql, 其中第二个参数id,是内部生成的一个自增id,如果第二个参数id对应的是List的话,会使用useServerPrepStmts,来逐个匹配参数51Testing软件测试网TsxhTYiw+D
51Testing软件测试网Ts%q]9rw
mt.add_sql("""insert into test value(null,#id#,'nick:#id#','fullname:#id#','phone:#id#',#id#)""",51Testing软件测试网Ght6c#Qn.g
W*M
{id -> ["id": update_id.getAndAdd(1)]},
8U+s+D#d5m0 10) //同样的加入一个写的SQL
[5XE
E5A$EP0 51Testing软件测试网9y(F3C6x(~&NZ.y"q
mt.run() //开始执行
,M2YJ
vy*|0
相关阅读:
- 淘宝物流MySQL slave复制数据丢失问题的个人整理 (xin_晴, 2012-11-05)
- Mysql数据文件破坏后的修复方法 (xin_晴, 2012-11-06)
- MySQL服务器的启动与停止的解析 (xin_晴, 2012-11-08)
- 在MySQL中获得更好的搜索结果 (xin_晴, 2012-11-13)
- 架构师眼中的MySQL开发模式 (xin_晴, 2012-11-14)
- 关于MySQL字符集架构的思考 (xin_晴, 2012-11-15)
- MySQL 查询数据不一致 (xin_晴, 2012-11-19)
- 如何安全的远程使用MySQL GUI工具 (xin_晴, 2012-11-21)
- MySQL 索引最佳实践 (msnshow, 2012-11-23)
- MySQL数据库性能优化之存储引擎选择 (msnshow, 2012-11-23)
收藏
举报
TAG:
MySQL
mysql