开发者社区> 沉默术士> 正文

MySQL小工具 之 压测Groovy

简介:
+关注继续查看
 

用Groovy编写的一个简单的MySQL给压力的工具,原先是用python写的,但是发现MySQLdb在liunx下性能不佳,就改用Groovy来实现了,支持简单的分表,支持useServerPrepStmts

这里有两个版本

mysql_test.groovy  : 他的各类SQL的比例完全按照 设的的比率执行,比如100:1的读写比,那么MySQL执行的读写SQL肯定也是100:1 mysql_test_for_thd.groovy : 他的SQL执行比率是线程比,如果设的100:1的读写比 那么就是100个线程(连接)去读,1个线程(连接)去写

用这个工具来简单的给压力和造数据是不错的选择.

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.concurrent.atomic.AtomicLong
 
def mt = ``new mysql_test(url: ``"jdbc:[mysql://127.0.0.1:3306/test?characterEncoding=GBK&useServerPrepStmts=true&cachePrepStmts=true](3306/test?characterEncoding=GBK&useServerPrepStmts=true&cachePrepStmts=true)"``,
        ``usr: ``"test"``, pwd: ``"test"``, table_name: ``"test"``)
mt.table_num = ``1 //分表的数量
mt.run_times = ``2500  //执行的总次数
mt.thread_num = ``100 //启用线程数(连接数),如果是mysql_test_for_thd 此值没有意义
 
def select_id = ``new AtomicLong(1L) ``//设定一个起始的读id
def update_id = ``new AtomicLong(1L) ``//设定一个起始的写id
 
mt.add_sql(``"""select * from no_id where uuid='#id#'"""``,
        ``{id -> [``"id"``: select_id.getAndAdd(``1``)]},
        ``100``) ``//加入一个读的SQL ,id从1开始执行一次就加1,读比是100 如果是mysql_test_for_thd 就是启100个线程来执行这个sql, 其中第二个参数id,是内部生成的一个自增id,如果第二个参数id对应的是List的话,会使用useServerPrepStmts,来逐个匹配参数
 
mt.add_sql(``"""insert into test value(null,#id#,'nick:#id#','fullname:#id#','phone:#id#',#id#)"""``,
        ``{id -> [``"id"``: update_id.getAndAdd(``1``)]},
        ``10``) ``//同样的加入一个写的SQL
 
mt.run() ``//开始执行
</div>
本文来源于"阿里中间件团队播客",原文发表时间" 2011-09-10"

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL Workbench 图形化界面工具
MySQL官方提供了一款免费的图形工具——MySQL Workbench,它是一款功能强大且易于使用的数据库设计、管理和开发工具,总之,MySQL Workbench是一款非常好用的MySQL图形工具,可以满足大多数MySQL用户的需求。
51 0
数据库管理工具:全网最全,MySQL 数据库图形化管理界面应用 Navicat Premium 使用教程
数据库管理工具:全网最全,MySQL 数据库图形化管理界面应用 Navicat Premium 使用教程
79 0
03_mysql下载安装登入及图形化工具Windows版
https://github.com/qq153916230/study.git mysql windows 5.7及8.0版本下载安装步骤和常见问题,mysql登入方式,5.7版本中文插入报错
121 0
MySQL性能监控(sql命令语句 & MONyog工具)全掌握,这一篇足以!
MySQL性能监控(sql命令语句 & MONyog工具)全掌握,这一篇足以!
207 0
MySQL压测时Linux中断异常飚高,原来是因为...
MySQL压测时Linux中断异常飚高,原来是因为...
43 0
MySQL基础(mysql下载,图形化界面工具,DDL)
1.Mysql下载安装启动 1.下载 2.安装 3.配置 4. 启动mysql 5.客户端连接 2.图形化界面工具 1.安装 2. 使用 3.SQL 1.SQL分类 1.DDL 1.数据库操作 2. 表操作 3.表操作-数据类型 4.表操作-案例
218 0
RDS MySQL 5.7 4核和8核共享规格性能压测
写在前面 这次压测只用了一台ECS,也没有调整各种压测比和压测参数,把实例压到最高;这里的压测只是为了说明不同的参数对性能影响,要想得出一个结论,必须要在可对比的情况下,比如:实例规格一样,从压测机到被压测机网络延迟一样,MySQL的配置文件一样等等,否则都是耍流氓。
1868 0
+关注
沉默术士
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载