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