MySQL壓測工具mysqlslap的介紹與使用_Mysql

來源:互聯網
上載者:User

一、Mysqlslap介紹

mysqlslap是MySQL5.1之後內建的benchmark基準測試載入器,類似Apache Bench負載產生工具,產生schema,裝載資料,執行benckmark和查詢資料,文法簡單,靈活,容易使用。該工具可以類比多個用戶端同時並發的向伺服器發出查詢更新,給出了效能測試資料而且提供了多種引擎的效能比較。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 --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                版本資訊

三、簡單樣本

1.分別測試100、200、400個並發執行10w條SQL。

mysqlslap -uroot -proot -h192.168.10.43 -P3306 --create-schema=chenmh --delimiter=";" --query="call pro_auto_select_pri" --concurrency=100,200,400 --number-of-queries=100000 

注意:報告輸出的時間主要體現在執行完–number-of-queries指定的查詢所花的時間,這裡分別是100個並發、200個並發、400個並發執行10w條call所花的時間。預設不指定–iterations代表重複執行一次操作,如果重複執行N此輸出的時間也是反應的是單次迴圈所花的時間。

2.產生csv

mysqlslap -a -e"myisam,innodb" --csv="c:/a.csv"

四、總結

mysqlslap主要還是針對資料庫的效能測試,並且自動化的測試功能有限,而且生產報表也不夠詳細,所以建議還是使用sysbench來做基準測試。以上就是關於mysqlslap的全部介紹,希望對大家的學習或者工作帶來一定的協助,如果有疑問大家可以留言交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.