mysqlslap是一个官方自带的压测工具。
使用方法:
shell> mysqlslap [option]
注意事项:
1/某些参数,例如—create或者—query允许指定一个sql语句或者在文件中指定一个sql语句,如果使用了文件,每行只能有一条sql语句。默认的语句分隔符是newline。
2/使用—delimiter选项来指定不同的分隔符。可以在命令行中使用,但是不能在文件中使用。
3/ 并发查询的数量受max_connections的影响
例子:
创建一张表,然后往里面插入一行数据,模拟50个客户端执行200次次查询。
[root@231 log]# mysqlslap --delimiter=";"
--create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"
--query="SELECT * FROM a" --concurrency=50 --iterations=200
Benchmark
Average number of seconds to run all queries: 0.024 seconds
Minimum number of seconds to run all queries: 0.020 seconds
Maximum number of seconds to run all queries: 0.221 seconds
Number of clients running queries: 50
Average number of queries per client: 1
指定文件查询sql,创建表的sql
mysqlslap --concurrency=5
--iterations=5 --query=query.sql --create=create.sql
--delimiter=";"
常用的选项:(详细的选项请查询官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysqlslap.html)
—auto-generate-sql :当没有指定sql语句时自动生成sql语句
—auto-generate-sql-add-autoincrement :增加自增列到自动生成的表中
—auto-generate-sql-execute-number :指定自动生成的语句中有多少个查询
—auto-generate-sql-secondary-indexes :指定自动生成的语句中有多少个二级索引
—atuo-generate-sql-unique-query-number :指定自动生成的语句产生多少个不同的查询语句
—compress : 在客户端与服务器端传输时压缩所有的数据
—create :后面接语句或者.sql文件,用来创建表
—delimiter : 指定分隔符
—concurrency=N,-c N: 指定多少个客户端并发执行
—engine=innodb,Myisam :指定存储引擎
—iterations=N :指定运行多少次
—no-drop : 在性能测试后不删除创建的对象
