首先在這里介紹一下常用的參數(shù)及其說明:
--auto-generate-sql, -a 自動生成測試表和數(shù)據(jù),表示用mysqlslap工具自己生成的SQL腳本來測試并發(fā)壓力。
--auto-generate-sql-load-type=type 測試語句的類型。代表要測試的環(huán)境是讀操作還是寫操作還是兩者混合的。取值包括:read,key,write,update和mixed(默認(rèn))。
--auto-generate-sql-guid-primary 增加基于GUID的主鍵
--auto-generate-sql-add-auto-increment 代表對生成的表自動添加auto_increment列,從5.1.18版本開始支持。
--number-char-cols=N, -x N 自動生成的測試表中包含多少個字符類型的列,默認(rèn)1
--number-int-cols=N, -y N 自動生成的測試表中包含多少個數(shù)字類型的列,默認(rèn)1
--number-of-queries=N 總的測試查詢次數(shù)(并發(fā)客戶數(shù)×每客戶查詢次數(shù))
--query=name,-q 使用自定義腳本執(zhí)行測試,例如可以調(diào)用自定義的一個存儲過程或者sql語句來執(zhí)行測試。
--create-schema 代表自定義的測試庫名稱,測試的schema,MySQL中schema也就是database。
--commint=N 多少條DML后提交一次。
--compress, -C 如果服務(wù)器和客戶端支持都壓縮,則壓縮信息傳遞。
--concurrency=N, -c N 表示并發(fā)量,也就是模擬多少個客戶端同時執(zhí)行select??芍付ǘ鄠€值,以逗號或者--delimiter參數(shù)指定的值做為分隔符。例如:--concurrency=100,200,500。
--engine=engine_name, -e engine_name 代表要測試的引擎,可以有多個,用分隔符隔開。例如:--engines=myisam,innodb。
--iterations=N, -i N 測試執(zhí)行的迭代次數(shù),代表要在不同并發(fā)環(huán)境下,各自運行測試多少次。
--only-print 只打印測試語句而不實際執(zhí)行。
--detach=N 執(zhí)行N條語句后斷開重連。
--debug-info, -T 打印內(nèi)存和CPU的相關(guān)信息。
例句
mysqlslap -h127.0.0.1 -uroot -p1234569 --concurrency=100 --iterations=10 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=5000