一、安裝 :MySqlSlap是從mysql5.1版本開始官方提供的測試工具(無需安裝)
二、MySqlSlap
- 簡介
MySqlSlap是從mysql5.1版本開始官方提供的測試工具
1. 自動創建schema,table,test data;
2. 運行負載測試,可以使用多個併發客戶端連接
3. 測試環境清理(刪除創建的數據、表等,斷開連接)
- 簡介
序號 |
右對齊 |
作用 |
1 |
--create-schema=name |
指定測試的數據庫名,默認是mysqlslap |
2 |
--engine=name |
創建測試表所使用的存儲引擎,可指定多個單元格 |
3 |
--concurrency=N |
模擬N個客戶端併發執行。可指定多個值,以逗號或者 |
4 |
--number-of-queries=N |
總的測試查詢次數(併發客戶數×每客戶查詢次數),比如併發 是10,總次數是100,那麼10個客戶端各執行10個 |
5 |
--iterations=N |
迭代執行的次數,即重複的次數(相同的測試進行N次,求一 個平均值),指的是整個步驟的重複次數,包括準備數據、測 試load、清理 |
6 |
--commit=N |
執行N條DML後提交一次 |
7 |
--auto-generate-sql, -a |
自動生成測試表和數據,表示用mysqlslap工具自己生成的 SQL腳本來測試併發壓力。 |
8 |
--auto-generate-sql-loadtype=name |
# 測試語句的類型。代表要測試的環境是讀操作還是寫操作還 是兩者混合的。 # 取值包括:read (scan tables), write (insert into tables), key (read primary keys), update (update primary keys), or mixed (half inserts, half scanning selects). 默認值是:mixed. |
9 |
--auto-generate-sql-addauto-increment |
對生成的表自動添加auto_increment列 |
10 |
--number-char-cols=name |
自動生成的測試表中包含N個字符類型的列,默認1 |
11 |
--number-int-cols=name |
自動生成的測試表中包含N個數字類型的列,默認1 |
12 |
--debug-info |
打印內存和CPU的信息 |
- 測試案例
- mysqlslap -a -u root -p123456 --create-schema='test' --concurrency=100 --iterations=10 auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=100
[root@192 ~]# mysqlslap -a -u root -p123456 --create-schema='test' --concurrency=100 --iterations=10 auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=100
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.039 seconds
Minimum number of seconds to run all queries: 0.014 seconds
Maximum number of seconds to run all queries: 0.131 seconds
Number of clients running queries: 100
Average number of queries per client: 1
- mysqlslap -a -u root -p123456 --create-schema='test' --concurrency=1,20,50,100 --iterations=10 auto-generate-sql-add-autoincrement --number-char-cols=5 --number-int-cols=5 --engine=innodb,myisam
[root@192 ~]# mysqlslap -a -u root -p123456 --create-schema='test' --concurrency=1,20,50,100 --iterations=10 auto-generate-sql-add-autoincrement --number-char-cols=5 --number-int-cols=5 --engine=innodb,myisam
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.014 seconds
Minimum number of seconds to run all queries: 0.009 seconds
Maximum number of seconds to run all queries: 0.031 seconds
Number of clients running queries: 1
Average number of queries per client: 0
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.109 seconds
Minimum number of seconds to run all queries: 0.038 seconds
Maximum number of seconds to run all queries: 0.262 seconds
Number of clients running queries: 20
Average number of queries per client: 0
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.197 seconds
Minimum number of seconds to run all queries: 0.119 seconds
Maximum number of seconds to run all queries: 0.424 seconds
Number of clients running queries: 50
Average number of queries per client: 0
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.590 seconds
Minimum number of seconds to run all queries: 0.348 seconds
Maximum number of seconds to run all queries: 1.173 seconds
Number of clients running queries: 100
Average number of queries per client: 0
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.003 seconds
Minimum number of seconds to run all queries: 0.003 seconds
Maximum number of seconds to run all queries: 0.005 seconds
Number of clients running queries: 1
Average number of queries per client: 0
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.024 seconds
Minimum number of seconds to run all queries: 0.021 seconds
Maximum number of seconds to run all queries: 0.028 seconds
Number of clients running queries: 20
Average number of queries per client: 0
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.095 seconds
Minimum number of seconds to run all queries: 0.078 seconds
Maximum number of seconds to run all queries: 0.134 seconds
Number of clients running queries: 50
Average number of queries per client: 0
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.242 seconds
Minimum number of seconds to run all queries: 0.227 seconds
Maximum number of seconds to run all queries: 0.264 seconds
Number of clients running queries: 100
Average number of queries per client: 0