備注:前面我們有文章介紹web服務(wù)器的壓力測試工具siege,今天來介紹下MySQL的壓力測試工具mysqlslap。
mysqlslap是mysql自帶的基準(zhǔn)測試工具,其查詢數(shù)據(jù)的語法簡單且靈活容易使用。該工具可以模擬多個(gè)客戶端同時(shí)并發(fā)的向服務(wù)器發(fā)出CURD,給出了性能測試數(shù)據(jù)而且提供了多種引擎的性能比較。msqlslap為mysql性能優(yōu)化前后提供了直觀的驗(yàn)證依據(jù)。
一、常見命令選項(xiàng)
--concurrency 并發(fā)數(shù)量,多個(gè)可以用逗號(hào)隔開
--engines 要測試的引擎,可以有多個(gè),用分隔符隔開,如--engines=myisam,innodb
--iterations 要運(yùn)行這些測試多少次
--auto-generate-sql 用系統(tǒng)自己生成的SQL腳本來測試
--auto-generate-sql-load-type 要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries 總共要運(yùn)行多少次查詢。每個(gè)客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來計(jì)算
--debug-info 額外輸出CPU以及內(nèi)存的相關(guān)信息
--number-int-cols 創(chuàng)建測試表的int型字段數(shù)量
--number-char-cols 創(chuàng)建測試表的chat型字段數(shù)量
--create-schema 測試的database
--query 自己的SQL執(zhí)行測試
--only-print 如果只想打印看看SQL語句是什么,可以用這個(gè)選項(xiàng)
二、測試demo
以下命令即為在ant數(shù)據(jù)庫中執(zhí)行查詢語句SELECT * FROM users,模擬100個(gè)客戶端同時(shí)進(jìn)行,且模擬次數(shù)為10次。
mysqlslap --create-schema='ant' -q "SELECT * FROM users" -c 100 -i 10 -uroot -proot

執(zhí)行后的結(jié)果
0.071s即為100個(gè)客戶端(并發(fā))同時(shí)運(yùn)行這些SQL語句平均要花0.071s秒