mysql運維-發佈包自帶壓測工具之mysqlslap

mysqlslap是mysql自帶的一個性能壓測工具;mysqlslap用於和其它的一些性能壓測工具同樣能夠本身造數據進行壓測。mysqlslap的報告比較簡單主要體如今執行的時間方面,沒有sysbench那樣的tps、qps等更詳細的包括。python

mysqlslap主要仍是針對數據庫的性能測試,而且自動測試功能有限,並且生產報表也不夠詳細,因此建議仍是使用sysbench來作基準測試。mysql

mysqlslap --help
(重要參數)
--host=host_name -h           數據庫host
--port=port_num -P            數據庫端口
--user=user_name -u           數據庫用戶名
--password=password -p        數據庫密碼
--create-schema=name          測試的數據名
--query=value -q              測試的SQL語句 如:mysqlslap --query="SELECT * FROM T1"
--delimiter=str -F            語句分隔符默認是 ;
--commit=#                    設置每多少條sql語句提交一次
--concurrency=# -c            客戶端數量(併發量)
--number-of-queries=#         每一個客戶端運行sql語句數量
--iterations=# -i             重複運行的次數

 ###################如下是全部參數#################################sql

--auto-generate-sql -a 自動生成MySQL測試語句
--auto-generate-sql-add-autoincrement 添加AUTO_INCREMENT字段
--auto-generate-sql-execute-number=# 查詢的個數
--auto-generate-sql-guid-primary 添加GUID字段
--auto-generate-sql-load-type=name mixed:混合、update:更新、write:寫入、key:讀主鍵、read:查詢
--auto-generate-sql-secondary-indexes=# 設置索引字段個數
--auto-generate-sql-unique-query-number=# 生成N條不一樣的query sql語句
--auto-generate-sql-unique-write-number=# 生成N條不一樣的write sql語句
--auto-generate-sql-write-number=# 每一個線程write sql語句數量
--commit=#                 設置每多少條sql語句提交一次
--compress -C                啓用壓縮協議
--concurrency=# -c            客戶端數量(併發量)
--create=name             測試的SQL語句或文件
--create-schema=name          測試的數據名
--csv=name 生產CSV格式數據文件
--debug -#            寫調試日誌(windows不可用) 如:mysqlslap -a -#"d:t:o,c:/debug.txt"
--debug-check              測試後打印調試信息(windows不可用)
--debug-info -T 打印內存和CPU的相關信息
--default-auth=plugin 驗證插件
--delimiter=str -F 語句分隔符默認是 ;
--detach=# 執行N條語句後斷開重連
--enable-cleartext-plugin 啓用明文身份驗證插件
--engine=engine_name -e 測試引擎 如:mysqlslap -e"myisam"或-e"myisam,innodb"
--help 幫助信息
--host=host_name -h 數據庫host
--iterations=# -i 重複運行的次數
--login-path=name 登錄配置文件
--no-drop 測試後不刪除schema
--number-char-cols=# -x 設置VARCHAR類型字段數量
--number-int-cols=# -y 設置INT類型字段數量
--number-of-queries=# 每一個客戶端運行sql語句數量
--only-print 僅顯示將被運行的SQL語句--delimiter選項影響
--password=password -p 數據庫密碼
--pipe 啓用管道
--plugin-dir=path 插件目錄
--port=port_num -P 數據庫端口
--post-query=value 測試後執行的SQL語句
--post-system=str 測試後執行的系統語句
--pre-query=value 測試前執行的SQL語句
--pre-system=str 測試前執行的系統語句
--protocol=type 連接協議 tcp, socket, pipe
--query=value -q 測試的SQL語句 如:mysqlslap --query="SELECT * FROM t1"
--secure-auth 不要發送密碼到服務器
--silent -s 不顯示測試(靜音測試)
--socket=path -S 鏈接服務器的socket
--ssl-ca=file_name
--ssl-capath=dir_name
--ssl-cert=file_name
--ssl-cipher=cipher_list
--ssl-crl=file_name
--ssl-crlpath=dir_name
--ssl-key=file_name
--ssl-verify-server-cert
--user=user_name -u 數據庫用戶名
--verbose -v 輸出更多的信息
--version -V 版本信息數據庫

詳細使用實例:windows

mysqlslap -h192.168.0.154 -P3306 -umysql -p123456  --create-schema=contract0 --delimiter=";" --query="call pro_contract0_qlist" --concurrency=100,200,400 --number-of-queries=100000

mysqlslap --host=rr-2ze008968pp15okccpi.mysql.rds.aliyuncs.com --port=3306 --user=lwcdo --password='123456' --create-schema=contract0 --query='SELECT count(1) FROM `contract` c INNER JOIN `contract_classification_relation` ccr ON c.`id` = ccr.contract_id INNER JOIN file_directory f ON c.doc_dir_id = f.id INNER JOIN document_classification dc ON dc.`id` = ccr.`classification_id` WHERE c.deleted = 0 AND c.public_type = 1 AND ccr.classification_id = 3088679218466818;' --concurrency=23 --iterations=100 --number-of-queries=8000

注意:報告輸出的時間主要體如今執行完--number-of-queries指定的查詢所花的時間,這裏分別是100個併發、200個併發、400個併發執行50w條call所花的時間。默認不指定--iterations表明重複執行一次操做,若是重複執行N此輸出的時間也是反應的是單次循環所花的時間。服務器

相關文章
相關標籤/搜索