mysqlslap
簡介
mysql 壓力測試工具
選項
選項
簡寫
說明
--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 -q"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
版本信息
例子
遠程測試如:mysqlslap -a -h"192.168.1.139" -P3306 -p指定sql語句 如:mysqlslap --create-schema=test -q"select * from user"自動測試 如:mysqlslap -a顯示測試sql語句 如:mysqlslap -a --only-print
報表
我們測試本地數據庫引擎性能
mysqlslap -a -e"myisam,innodb" --csv="c:/a.csv"
c:/a.csv文件
我們轉換成圖表形式
可以看出 myisam,innodb 混合測試時myisam性能更好些 讀寫時間更少
常用選項
Windows默認配置文件讀取順序:
C:\WINDOWS\my.ini
C:\WINDOWS\my.cnf
C:\my.ini
C:\my.cnf
F:\mysql\5.6.16\my.ini
F:\mysql\5.6.16\my.cnf
-h 數據庫host
-u 數據庫用戶名
-p 數據庫密碼
-P 數據庫端口
--create-schema=name 測試的數據名
--create=name 測試的SQL語句或文件
--no-drop 測試後不刪除schema
--only-print 僅顯示將被運行的SQL語句
-c 客戶端數量(並發量) 如:mysqlslap -c"10"或-c"10,100,1000"
-e 測試引擎 如:mysqlslap -e"myisam"或-e"myisam,innodb"
--number-of-queries=# SQL語句執行總次數 如:mysqlslap -a --number-of-queries="10"
-q 測試的SQL語句 如:mysqlslap -q"SELECT * FROM t1"
-i 迭代運行次數 如:mysqlslap -a -i"3"
-T 顯示內存和CPU信息並退出 如:mysqlslap -a -T
-F SQL語句分隔符
-s 不輸出無回顯運行
--csv[=name] 生產CSV格式數據文件
--commit=# 設置每多少條sql語句提交一次
--detach=# 設置每多少條sql語句重連服務器一次
-a,--auto-generate-sql 自動生成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語句數量
-x, --number-char-cols=name 設置VARCHAR類型字段數量 默認1
-y, --number-int-cols=name 設置INT 類型字段數量默認1