mysqlslap 可以用于模拟服务器的负载,并输出计时信息。测试时,可以指定并发连接数,可以指定 SQL 语句。如果没有指定 SQL 语句,mysqlslap 会自动生成查询 schema 的 SELECT 语句。
1.测试
mysqlslap --help
如果是报错
mysqlslap: unknown variable 'default-character-set=utf8'
请修改 my.cnf ,把下面这行注释掉
#default-character-set=utf8
a.模拟并发处理查询请求:
mysqlslap -a -uroot -p -c 20 --number-of-queries=100
Enter password:
Benchmark
Average number of seconds to run all queries: 0.051 seconds
Minimum number of seconds to run all queries: 0.051 seconds
Maximum number of seconds to run all queries: 0.051 seconds
Number of clients running queries: 20
Average number of queries per client: 5
b. 提供你自己的创建 SQL 语句和查询 SQL 语句,有 50 个客户端查询,每个查询 200 次(在单行上输入命令)
mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50
--iterations=200 -uroot -p
输出:
Benchmark
Average number of seconds to run all queries: 0.011 seconds
Minimum number of seconds to run all queries: 0.010 seconds
Maximum number of seconds to run all queries: 0.015 seconds
Number of clients running queries: 50
Average number of queries per client: 1
c.可以创建两个文件来保存sql
ll | grep .sql
-rw-rw-r-- 1 wgy wgy 50 May 21 19:34 create.sql
-rw-rw-r-- 1 wgy wgy 17 May 21 19:33 query.sql
然后执行:
mysqlslap --concurrency=5 --iterations=5 -uroot -p --query=query.sql --create=create.sql --delimiter=";"
Enter password:
Benchmark
Average number of seconds to run all queries: 0.000 seconds
Minimum number of seconds to run all queries: 0.000 seconds
Maximum number of seconds to run all queries: 0.001 seconds
Number of clients running queries: 5
Average number of queries per client: 1