首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 壓測工具 mysqlslap 介紹與實戰:參數詳解、並發測試、CSV 報表生成

     編輯:MySQL 資料庫相關知識

mysqlslap 是 MySQL 5.1+ 內建基準測試工具,類似 ab,支援自動生成 Schema/資料、多引擎對比、並發壓力、CSV 報表。適合快速驗證優化前後效能、評估單機極限。

一、核心參數速查

完整參數見正文長表(含 debug、SSL、認證外掛等)。

二、實戰範例

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

輸出:各並發下執行 10 萬次 CALL 耗時(單位:秒)。

2. 引擎對比 + CSV 報表

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

三、輸出解讀

Benchmark
    Average number of seconds to run all queries: 12.345 seconds
    Minimum number of seconds to run all queries: 11.234 seconds
    Maximum number of seconds to run all queries: 13.456 seconds
    Number of clients running queries: 100
    Average queries per client: 1000
  • 時間 = 執行 --number-of-queries 指定查詢數的總耗時
  • 預設 --iterations=1,多次迭代取平均

四、局限與建議

  • 自動生成 SQL 較簡單,無法模擬複雜業務查詢
  • 報表維度單一(僅耗時),無 QPS、延遲分位、錯誤率
  • 生產級基準測試建議用 sysbench:支援 Lua 腳本、多階段、詳細統計、分佈式協同
  • mysqlslap 適合:快速驗證「優化前後單表查詢效能差異」、「新索引效果」、「引擎切換影響」

五、最佳實踐流程

  1. 備份生產資料 → 匿名化 → 導入測試庫
  2. 基線測試:mysqlslap -a -c 50 -i 3 -d test_db
  3. 應用優化(加索引/改 SQL/調參數)
  4. 回歸測試:同參數再跑一次
  5. 對比 Average/Min/Max,確認提升
  6. 生產灰度驗證

工具是放大鏡,看清效能真相,但業務場景才是試金石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
參數縮寫說明範例
--auto-generate-sql-a自動生成測試 SQL-a
--concurrency-c並發客戶端數-c 100,200,400
--iterations-i重複執行次數-i 3
--number-of-queries-q每客戶端查詢數--number-of-queries=100000
--engine-e測試引擎(可多個)-e "myisam,innodb"
--create-schema-d測試資料庫--create-schema=test_db
--query-q自定義測試 SQL--query="CALL proc()"
--csv—輸出 CSV 報表--csv=report.csv
--delimiter-F語句分隔符--delimiter=";"
--verbose-v詳細輸出-v