文章目錄
- 簡介
- 一.執行個體說明
- 二.參數說明
簡介
mysqlslap是一個診斷程式,旨在模拟MySQL伺服器的用戶端負載并報告每個階段的時間。它就像多個用戶端正在通路伺服器一樣工作。
像這樣 調用mysqlslap(windows下調用powershell或者cmd視窗,linux直接運作指令即可):
shell> mysqlslap [options]
- 一些選項,例如–create 或–query使您能夠指定包含SQL語句的字元串或包含語句的檔案。
- 如果指定檔案,則預設情況下該檔案每行必須包含一個語句。(也就是說,隐式語句定界符是換行符。)使用該 --delimiter選項可以指定其他定界符,這使您可以指定跨越多行的語句或将多條語句放在一行上。您不能在檔案中包含注釋; mysqlslap無法了解它們。
mysqlslap分三個階段運作:
- 建立架構,表以及可選的任何存儲程式或資料以用于測試。此階段使用單個用戶端連接配接。
- 運作負載測試。此階段可以使用許多用戶端連接配接。
- 清理(斷開連接配接,如果指定的話,删除表)。此階段使用單個用戶端連接配接。
一.執行個體說明
例子:
提供您自己的create和query SQL語句,其中包含50個用戶端查詢和200個選擇(在一行中輸入指令):
mysqlslap --delimiter=";"
--create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"
--query="SELECT * FROM a" --concurrency=50 --iterations=200
讓mysqlslap用兩INT列和三VARCHAR列的表建構查詢SQL語句。使用五個用戶端,每個用戶端查詢20次。不要建立表或插入資料(即,使用先前測試的架構和資料):
mysqlslap --concurrency=5 --iterations=20
--number-int-cols=2 --number-char-cols=3
--auto-generate-sql
告訴程式從指定的檔案加載建立,插入和查詢SQL語句,其中該 create.sql檔案包含多個以分隔的表建立語句’;‘和多個以分隔的插入語句’;’。該 --query檔案将包含多個以分隔的查詢’;’。運作所有裝入語句,然後使用五個用戶端(每個用戶端五次)運作查詢檔案中的所有查詢:
mysqlslap --concurrency=5
--iterations=5 --query=query.sql --create=create.sql
--delimiter=";"
二.參數說明
mysqlslap選項
選項名稱 | 描述 | 版本起止 |
---|---|---|
- -auto-generate-sql | 指令選項未提供或未使用檔案時自動生成SQL語句 | |
- -auto-generate-sql-add-autoincrement | 在自動生成的表中增加自增列 | |
- -auto-generate-sql-execute-number | 指定自動生成多少個查詢 | |
- -auto-generate-sql-guid-primary | 将基于GUID的主鍵添加到自動生成的表中 | |
- -auto-generate-sql-load-type | 指定測試負載類型 | |
- -auto-generate-sql-secondary-indexes | 指定要添加到自動生成的表中的二級索引的數量 | |
- -auto-generate-sql-unique-query-number | 為自動測試生成多少個不同的查詢。 | |
- -auto-generate-sql-unique-query-number | 為自動測試生成多少個不同的插入。 | |
- -auto-generate-sql-write-number | 每個線程要執行多少行插入 | |
- -commit | 送出前要執行多少條語句 | |
- -compress | 壓縮用戶端和伺服器之間發送的所有資訊 | |
- -create | 包含用于建立表的語句的檔案或字元串 | |
- -create-schema | 運作測試的模式 | |
- -debug | 寫調試日志 | |
- -debug-check | 程式退出時,列印一些調試資訊 | |
- -debug-info | 程式退出時,列印調試資訊以及記憶體和CPU使用情況統計資訊 | |
- -delimiter | 在檔案或使用指令選項提供的SQL語句中使用的定界符 | |
- -detach | 在每個N語句之後分離(關閉并重新打開)每個連接配接 | |
- -engine | 測試表的存儲引擎 | |
- -host | 連接配接到給定主機上的MySQL伺服器。 | |
- -iterations | 運作測試的次數。 | |
- -number-char-cols | 指定了–auto-generate-sql自定義VARCHAR的列數 | |
- -number-int-cols | 指定了–auto-generate-sql自定義INT的列數 | |
- -number-of-queries | 将每個用戶端限制為大約這麼多查詢 | |
- -password | 用于連接配接伺服器的MySQL帳戶的密碼 | |
- -port | 對于TCP / IP連接配接,使用的端口号 | |
- -query | 包含SELECT用于檢索資料的語句的檔案或字元串 。 | |
- -user | 用于連接配接到伺服器的MySQL帳戶的使用者名 | |
- -version | 顯示版本資訊并退出。 |
官方文檔位址:https://dev.mysql.com/doc/refman/5.6/en/mysqlslap.html
給出mysql自動生成的指令語句的excel工具:https://download.csdn.net/download/colcool/11745630
詳細參數及可選項如下:
- –help, -?
顯示幫助消息并退出。
- –auto-generate-sql, -a
當檔案中未提供或使用指令選項時,會自動生成SQL語句。
- –auto-generate-sql-add-autoincrement
AUTO_INCREMENT在自動生成的表中 添加一列。
- –auto-generate-sql-execute-number=N
指定要自動生成的查詢數。
- –auto-generate-sql-guid-primary
将基于GUID的主鍵添加到自動生成的表中。
- –auto-generate-sql-load-type=type
指定測試負載類型。允許值為 read(掃描表), write(插入表中), key(讀取主鍵), update(更新主鍵)或 mixed(半插入,半掃描選擇)。預設值為mixed。
- –auto-generate-sql-secondary-indexes=N
指定要添加到自動生成的表中的二級索引的數量。預設情況下,不添加任何内容。
- –auto-generate-sql-unique-query-number=N
為自動測試生成多少個不同的查詢。例如,如果您運作key執行1000個選擇的測試,則可以将該選項的值設定為1000來運作1000個唯一查詢,或者使用值50的選項來執行50個不同的選擇。預設值為10。
- –auto-generate-sql-unique-write-number=N
要為生成多少個不同的查詢 --auto-generate-sql-write-number。預設值為10。
- –auto-generate-sql-write-number=N
要執行多少行插入。預設值為100。
- –commit=N
送出前要執行多少條語句。預設值為0(不執行任何送出)。
- –compress, -C
盡可能壓縮用戶端和伺服器之間發送的所有資訊。請參見 第4.2.5節“連接配接壓縮控制”。
- –concurrency=N, -c N
要模拟的并行用戶端的數量。
- –create=value
包含用于建立表的語句的檔案或字元串。
- –create-schema=value
運作測試的模式。
注意
如果–auto-generate-sql 還提供了該 選項,則mysqlslap将在測試運作結束時删除該架構。為避免這種情況,請同時使用該–no-drop選項。
- –csv[=file_name]
生成以逗号分隔的值格式的輸出。輸出将轉到指定的檔案,如果未提供檔案,則轉到标準輸出。
- –debug[=debug_options], -# [debug_options]
編寫調試日志。典型的 debug_options字元串是 。預設值為 。 d:t:o,file_named:t:o,/tmp/mysqlslap.trace
- –debug-check
程式退出時,列印一些調試資訊。
- –debug-info, -T
程式退出時,列印調試資訊以及記憶體和CPU使用情況統計資訊。
- –default-auth=plugin
有關使用哪個用戶端身份驗證插件的提示。請參見第6.2.11節“可插入身份驗證”。
- –defaults-extra-file=file_name
在全局選項檔案之後但在使用者選項檔案之前(在Unix上)讀取此選項檔案。如果檔案不存在或無法通路,則發生錯誤。 file_name如果給出為相對路徑名而不是完整路徑名,則相對于目前目錄解釋。
有關此選項和其他選項檔案選項的更多資訊,請參見第4.2.2.3節“影響選項檔案處理的指令行選項”。
- –defaults-file=file_name
僅使用給定的選項檔案。如果檔案不存在或無法通路,則發生錯誤。 file_name如果給出為相對路徑名而不是完整路徑名,則相對于目前目錄解釋。
例外:即使這樣–defaults-file,用戶端程式也會 讀取.mylogin.cnf。
有關此選項和其他選項檔案選項的更多資訊,請參見第4.2.2.3節“影響選項檔案處理的指令行選項”。
- –defaults-group-suffix=str
不僅閱讀正常選項組,而且閱讀具有正常名稱和字尾的組 str。例如, mysqlslap通常讀取 [client]和 [mysqlslap]組。如果–defaults-group-suffix=_other 給出了該 選項,mysqlslap也會讀取 [client_other]和 [mysqlslap_other]組。
有關此選項和其他選項檔案選項的更多資訊,請參見第4.2.2.3節“影響選項檔案處理的指令行選項”。
- –delimiter=str, -F str
在檔案或使用指令選項提供的SQL語句中使用的定界符。
- –detach=N
在每個N語句之後分離(關閉并重新打開)每個連接配接 。預設值為0(連接配接不分離)。
- –enable-cleartext-plugin
啟用mysql_clear_password明文身份驗證插件。(請參見 第6.4.1.5節“用戶端明文可插入身份驗證”。)
- –engine=engine_name, -e engine_name
用于建立表的存儲引擎。
- –host=host_name, -h host_name
連接配接到給定主機上的MySQL伺服器。
- –iterations=N, -i N
運作測試的次數。
- –login-path=name
從.mylogin.cnf登入路徑檔案中的命名登入路徑讀取選項 。阿 “ 登入路徑 ”是含有指定要連接配接到哪個MySQL伺服器和選項哪個帳戶作為認證選項組。要建立或修改登入路徑檔案,請使用 mysql_config_editor實用程式。請參見 第4.6.6節“ mysql_config_editor -MySQL配置實用程式”。
有關此選項和其他選項檔案選項的更多資訊,請參見第4.2.2.3節“影響選項檔案處理的指令行選項”。
- –no-drop
防止mysqlslap删除它在測試運作期間建立的任何模式。
- –no-defaults
不要讀取任何選項檔案。如果由于從選項檔案中讀取未知選項而導緻程式啟動失敗,–no-defaults則可以使用該選項 來防止讀取它們。
唯一的例外是,.mylogin.cnf 在所有情況下都會讀取該檔案(如果存在)。這樣,即使–no-defaults使用密碼,也可以通過比指令行更安全的方式指定密碼 。(.mylogin.cnf由mysql_config_editor實用程式建立 。請參見 第4.6.6節“ mysql_config_editor -MySQL配置實用程式”。)
有關此選項和其他選項檔案選項的更多資訊,請參見第4.2.2.3節“影響選項檔案處理的指令行選項”。
- –number-char-cols=N, -x N
指定了VARCHAR要使用 的列 數–auto-generate-sql。
- –number-int-cols=N, -y N
指定了INT要使用 的列數–auto-generate-sql。
- –number-of-queries=N
将每個用戶端限制為大約這麼多查詢。查詢計數考慮了語句定界符。例如,如果您按如下方式調用mysqlslap,;則會識别定界符,以便查詢字元串的每個執行個體都計為兩個查詢。結果,插入了5行(不是10行)。
shell> mysqlslap --delimiter=";" --number-of-queries=10
–query=“use test;insert into t values(null)”
- –only-print
不要連接配接到資料庫。mysqlslap 隻列印它會做的事情。
- –password[=password], -p[password]
用于連接配接伺服器的MySQL帳戶的密碼。密碼值是可選的。如果未給出,則 mysqlslap提示輸入一個。如果提供,則或 和後面的密碼之間 必須沒有空格。如果未指定密碼選項,則預設為不發送密碼。 --password=-p
在指令行上指定密碼應該被認為是不安全的。為避免在指令行上輸入密碼,請使用選項檔案。請參見 第6.1.2.1節“最終使用者密碼安全準則”。
要明确指定沒有密碼,并且mysqlslap不應提示輸入密碼 ,請使用該 --skip-password 選項。
- –pipe, -W
在Windows上,使用命名管道連接配接到伺服器。僅當伺服器在named_pipe啟用系統變量以支援命名管道連接配接的情況下啟動時,此選項才适用 。另外,建立連接配接的使用者必須是named_pipe_full_access_group 系統變量指定的Windows組的成員 。
- –plugin-dir=dir_name
在其中查找插件的目錄。如果該–default-auth選項用于指定身份驗證插件,但 mysqlslap找不到,請指定此選項 。請參見 第6.2.11節“可插入身份驗證”。
- –port=port_num, -P port_num
對于TCP / IP連接配接,使用的端口号。
- –post-query=value
測試完成後包含要執行的語句的檔案或字元串。此執行不計入計時目的。
- –post-system=str
system() 測試完成後 要使用的字元串。此執行不計入計時目的。
- –pre-query=value
包含要在運作測試之前執行的語句的檔案或字元串。此執行不計入計時目的。
- –pre-system=str
system() 運作測試之前 要使用的字元串。此執行不計入計時目的。
- –print-defaults
列印程式名稱及其從選項檔案中擷取的所有選項。
有關此選項和其他選項檔案選項的更多資訊,請參見第4.2.2.3節“影響選項檔案處理的指令行選項”。
- –protocol={TCP|SOCKET|PIPE|MEMORY}
用于連接配接到伺服器的連接配接協定。當其他連接配接參數通常導緻使用所需協定以外的協定時,此功能很有用。有關允許值的詳細資訊,請參見 第4.2.4節“使用指令選項連接配接到MySQL伺服器”。
- –query=value, -q value
包含SELECT用于檢索資料的語句的檔案或字元串 。
- –secure-auth
不要以舊(4.1之前)格式向伺服器發送密碼。這樣可以防止除使用較新密碼格式的伺服器以外的其他連接配接。預設情況下啟用此選項。用于 --skip-secure-auth 禁用它。該選項是在MySQL 5.6.17中添加的。
注意
使用4.1之前的哈希方法的密碼比使用本機密碼哈希方法的密碼安全性較低,應避免使用。不建議使用4.1之前的密碼,并且在将來的MySQL版本中将删除對密碼的支援。有關帳戶更新的說明,請參見第6.4.1.3節“從4.1之前的密碼哈希和mysql_old_password插件遷移”。
注意
此選項已被棄用,并将在以後的版本中删除。從MySQL 5.7.5開始,它始終處于啟用狀态,嘗試禁用它會産生錯誤。
- –shared-memory-base-name=name
在Windows上,共享記憶體名稱,用于使用共享記憶體與本地伺服器建立的連接配接。預設值為MYSQL。共享記憶體名稱區分大小寫。
僅當伺服器在shared_memory啟用系統變量以支援共享記憶體連接配接的情況下啟動時,此選項才适用 。
- –silent, -s
靜音模式。無輸出。
- –socket=path, -S path
對于與的連接配接localhost,要使用的Unix套接字檔案,或者在Windows上,要使用的命名管道的名稱。
在Windows上,僅當在named_pipe 啟用了支援命名管道連接配接的系統變量的情況下啟動伺服器時,此選項才适用。另外,建立連接配接的使用者必須是named_pipe_full_access_group 系統變量指定的Windows組的成員 。
- –ssl*
以開頭的選項 --ssl指定是否使用SSL連接配接到伺服器,并訓示在何處查找SSL密鑰和證書。請參閱 加密連接配接的指令選項。
- –user=user_name, -u user_name
用于連接配接到伺服器的MySQL帳戶的使用者名。
- –verbose, -v
詳細模式。列印有關程式功能的更多資訊。可以多次使用此選項以增加資訊量。
- –version, -V
顯示版本資訊并退出。
參考資訊:https://blog.csdn.net/colcool/article/details/100841517