mysqlslap是5.1后自带的系统工具,可直接使用.

介绍

  基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试.需要注意基准测试不等于压力测试.

特点

  1. 模拟负载,输出相关信息.
  2. 可指定自动生成查询语句.

参数

参数说明
--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秒
Last modification:March 10th, 2020 at 07:05 pm