MySQL小工具 之 压测Groovy

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
 

用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"
相关文章
|
1月前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
29 0
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
147 1
|
28天前
|
消息中间件 Java 测试技术
性能工具之Jmeter扩展函数及压测ActiveMQ实践
【5月更文挑战第18天】性能工具之Jmeter扩展函数及压测ActiveMQ实践
51 5
|
1月前
|
关系型数据库 MySQL 测试技术
MySQL性能测试(完整版)
MySQL性能测试(完整版)
87 1
|
3天前
|
SQL 存储 关系型数据库
AI代码提示工具可用于教学功能示例——MySQL
AI代码提示工具可用于教学功能示例——MySQL
6 0
|
6天前
|
SQL 关系型数据库 MySQL
mysqldiff - Golang 针对 MySQL 数据库表结构的差异 SQL 工具
Golang 针对 MySQL 数据库表结构的差异 SQL 工具。https://github.com/camry/mysqldiff
38 7
|
11天前
|
SQL 关系型数据库 MySQL
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
18 1
|
11天前
|
监控 测试技术 Linux
性能测试工具
这篇内容介绍了几种性能测试工具和Linux监控命令。`ab`适用于简单接口测试,易用但扩展性差;`JMeter`功能强大,可扩展,但稳定性不足;`LoadRunner`专业稳定,但需付费。此外,还提到了几个Linux监控命令,如`top`、`vmstat`、`pidstat`和`jstat`,用于系统性能监控和内存使用情况检查。
35 0
|
13天前
|
SQL 监控 关系型数据库
解密MySQL二进制日志:深度探究mysqlbinlog工具
解密MySQL二进制日志:深度探究mysqlbinlog工具
37 3
|
22天前
|
监控 数据可视化 测试技术
性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
【5月更文挑战第23天】性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
64 6
性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控

推荐镜像

更多