mysqlslap是5.1后自带的系统工具,可直接使用.
介绍
基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试.需要注意基准测试不等于压力测试.
特点
- 模拟负载,输出相关信息.
- 可指定自动生成查询语句.
参数
参数 | 说明 |
---|---|
--host | 数据库主机地址 |
--user | 数据库用户 |
--password | 数据库密码 |
--port | 数据库端口号 |
--auto-generate-sql | 由系统自定生成sql进行测试 |
--auto-generate-sql-load-type | 基准测试使用的查询类型(默认读写查询的混合方式) |
--auto-generate-sql-add-autoincrement | 增加表中自增ID生成 |
--auto-generate-sql-write-number | 生成数据量,默认一百条数据 |
--concurrency | 并发数 |
--engine | 存储引擎(不可与no-drop同时使用) |
--no-drop | 不清理测试数据(默认清理) |
--iterations | 测试次数,会自动清理数据(不可与no-drop) |
--debug-info | 输出内存cpu信息 |
--number-of-queries | 线程执行查询数量 |
--number-int-cols | 包含int类型的数量 |
--number-char-cols | 包含varchar类型数量 |
--create-schema | 测试数据库 |
--query | 自定义脚本 |
--only-print | 不运行测试脚本,把生成脚本打印出来 |
--help | 查看所有参数 |
使用
模拟几条数据
MySQL [(none)]> create database angel;
Query OK, 1 row affected (0.01 sec)
MySQL [(none)]> use angel
Database changed
MySQL [angel]> create table angel_users(
-> id int auto_increment primary key,
-> user varchar(30) not null,
-> created_time datetime);
Query OK, 0 rows affected (0.06 sec)
insert into angel_users (id,user,created_time) values (1,'qvbilam',now()),(2,'zcxSB',now());
测试
# 1000并发测试一次.定义查询语句
mysqlslap --concurrency=1000 --iterations=1 --create-schema=angel --query='select id,user from angel_users;' --number-of-queries=10 -uroot -pqvbilam
# 输出
Benchmark
Average number of seconds to run all queries: 3.057 seconds
Minimum number of seconds to run all queries: 3.057 seconds
Maximum number of seconds to run all queries: 3.057 seconds
Number of clients running queries: 1000
Average number of queries per client: 0
# 可以看到1000个并发同时运行需要3秒