天天看點

Mysql自帶mysqlslap性能測試工具的使用及參數說明簡介一.執行個體說明二.參數說明

文章目錄

  • 簡介
  • 一.執行個體說明
  • 二.參數說明

簡介

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

繼續閱讀