首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL mysqlslap 壓力測試工具完整參數與實戰指南

     編輯:MySQL 綜合教學

MySQL mysqlslap 壓力測試工具完整參數與實戰指南

mysqlslap 是 MySQL 官方內建的負載測試工具,可自動產生測試資料與 SQL,模擬多客戶端併發存取,輸出執行時間統計。適合快速驗證資料庫基準效能,但報告較簡單(無 TPS/QPS),深度分析建議改用 sysbench。

一、核心參數完整對照表

參數短參數說明
--auto-generate-sql-a自動產生測試 SQL(預設為 SELECT)
--auto-generate-sql-load-type負載類型:mixed/update/write/key/read
--concurrency-c併發客戶端數(可逗號分隔多組:100,200,400)
--iterations-i重複執行次數(預設 1)
--number-of-queries每個客戶端執行的查詢總數
--query-q指定自訂 SQL(需搭配 --delimiter)
--create-schema測試使用的資料庫名稱
--engine-e測試引擎:myisam, innodb 等(可多組)
--csv輸出 CSV 格式報告
--verbose-v顯示詳細資訊
--only-print僅列印將執行的 SQL,不實際執行

完整參數請執行 mysqlslap --help 查看。

二、常用實戰範例

1. 多併發等級測試預存程序

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

輸出解讀: 分別顯示 100/200/400 併發執行 10 萬次 CALL 所花費的總時間(單位:秒)。

mysqlslap 測試報告

2. 自動產生測試資料並比較引擎

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

自動建立測試表、插入資料、執行混合負載,並輸出 CSV 供後續分析。

3. 指定讀寫比例與索引

mysqlslap -a \
  --auto-generate-sql-load-type=mixed \
  --auto-generate-sql-write-number=100 \
  --auto-generate-sql-secondary-indexes=3 \
  --concurrency=50 \
  --iterations=3 \
  --create-schema=testdb

三、報告關鍵指標

  • Average number of seconds to run all queries: 完成所有查詢的平均秒數
  • Minimum/Maximum: 多次迭代中的最小/最大值
  • Number of clients running queries: 併發客戶端數
  • Average queries per client: 每客戶端平均查詢數

四、優缺點總結

優點缺點
MySQL 內建,無需額外安裝報告僅含時間統計,無 TPS/QPS/延遲分佈
自動產生測試資料與 Schema自動產生 SQL 型式有限,難以模擬真實業務
支援多併發等級一次跑完無法精細控制交易混合比例
可輸出 CSV 方便後處理長時間測試穩定性較差

五、建議

mysqlslap 適合快速驗證、簡單基準比較。生產級效能基準測試、詳細指標分析(TPS、QPS、P99 延遲)、長時間穩定性測試,請使用 sysbench。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved