1. 程式人生 > 資料庫 >詳解Mysql5.7自帶的壓力測試命令mysqlslap及使用語法

詳解Mysql5.7自帶的壓力測試命令mysqlslap及使用語法

前言

mysqlslap是一個診斷程式,旨在模擬MySQL伺服器的客戶端負載並報告每個階段的時間。它就像多個客戶端正在訪問伺服器一樣工作。

1、使用的語法:

mysqlslap [options]

--auto-generate-sql,-a :自動生成測試表和資料,表示用mysqlslap自己生成的SQL指令碼來測試併發壓力。
--auto-generate-sql-load-type=type :測試語句的型別,取值包括:read,key,write,update和mixed(預設)。
--auto-generate-sql-add-auto-increment :對生成的表自動新增auto_increment列。

--create-schema :自定義的測試庫名稱。
--commint=N :設定N條DML後提交一次。
--compress,-C :如果伺服器和客戶端支援都壓縮,則壓縮資訊傳遞。
--concurrency=N,-c N :表示併發量,也就是模擬多少個客戶端同時執行select。可指定多個值,例如:--concurrency=100,200,500。
--detach=N :執行N條語句後斷開重連。
--debug-info,-T :列印記憶體和CPU的相關資訊。
--engine=engine_name,-e engine_name :要測試的引擎,可以有多個,用分隔符隔開。例如:--engines=myisam,innodb。
--iterations=N,-i N :測試執行的迭代次數,表示要在不同併發環境下,各自執行測試多少次。
--number-char-cols=N,-x N :自動生成的測試表中包含N個字元型別的列,預設為1。
--number-int-cols=N,-y N :自動生成的測試表中包含N個數字型別的列,預設為1。
--number-of-queries=N :總的測試查詢次數(併發客戶數×每客戶查詢次數)。
--only-print :只打印測試語句而不實際執行。
--query=name,-q :使用自定義指令碼執行測試,例如可以自定義一個儲存過程或者sql語句來執行測試。

2、案例

測試100個併發,自動生成SQL測試指令碼,執行1000次總查詢:

root# mysqlslap -uroot -p123456 -a --concurrency=100 --number-of-queries 1000
Benchmark
 Average number of seconds to run all queries: 0.725 seconds
 Minimum number of seconds to run all queries: 0.725 seconds
 Maximum number of seconds to run all queries: 0.725 seconds
 Number of clients running queries: 100
 Average number of queries per client: 10

測試100個併發執行緒,測試次數5次,自動生成SQL測試指令碼,讀、寫、更新混合測試,自增長欄位,測試引擎為innodb,執行5000次總查詢

root# mysqlslap -uroot -p123456--concurrency=100 --iterations=5 --auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=5000

Benchmark
 Running for engine innodb
 Average number of seconds to run all queries: 1.264 seconds
 Minimum number of seconds to run all queries: 1.161 seconds
 Maximum number of seconds to run all queries: 1.404 seconds
 Number of clients running queries: 100
 Average number of queries per client: 50

總結

以上所述是小編給大家介紹的Mysql5.7自帶的壓力測試命令mysqlslap及使用語法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!