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

MySQL 生產級工具箱:sysbench、xtrabackup、mysqlslap、innotop 實戰速查

     編輯:MySQL 資料庫相關知識

壓測工具

sysbench OLTP 基準測試

# 安裝(需 mysql-devel)
./configure --with-mysql-libs=/usr/lib64/mysql --with-mysql-includes=/usr/include/mysql
make && make install

# 準備測試資料
sysbench --test=oltp --oltp-table-size=100000 \
  --mysql-socket=/data/mysql/mysql3306/var/mysql.sock \
  --mysql-host=127.0.0.1 --mysql-db=temp --mysql-user=root --mysql-password=xxx prepare

# 執行唯讀壓測 60 秒,8 線程
sysbench --test=oltp --oltp-table-size=100000 \
  --mysql-socket=/data/mysql/mysql3306/var/mysql.sock \
  --mysql-db=temp --mysql-user=root --mysql-password=xxx \
  --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

mysqlslap 官方壓測工具

mysqlslap --concurrency=50 --iterations=10 \
  --create-schema=test --query="SELECT * FROM t WHERE id=1" \
  --engine=innodb --number-of-queries=1000

備份與恢復

xtrabackup 熱備份(Percona)

  • 非阻塞、支援增量、流式傳輸、壓縮加密。
  • xtrabackup --backup --target-dir=/backup/full --user=root --password=xxx
  • 增量:--incremental-basedir=/backup/full --incremental-dir=/backup/inc1
  • 恢復:--prepare --apply-log-only 合併增量 → --copy-back。

資料導入導出

mysqlimport 快速載入文字檔

# 預處理日誌:擷取前兩欄,去除 ? 後參數
awk '{print $1"\t"$2}' active.log > step1.log
awk -F'?' '{print $1}' step1.log > final.log

# 導入
mysqlimport -h host -u user -p db --fields-terminated-by='\t' --local final.log

表維護與分析

myisampack 壓縮唯讀 MyISAM 表

myisampack tbl_name
myisamchk -rq --sort-index --analyze tbl_name.MYI  # 重建索引
mysqladmin flush-tables  # 生效

解壓:myisamchk --unpack tbl_name.MYI。

myisamchk 索引修復與分析

myisamchk -r -q tbl_name.MYI  # 快速修復模式

監控診斷

innotop 即時 InnoDB 監控(類 top)

  • 顯示事務、鎖等待、緩衝池命中率、I/O 統計、SQL 執行計畫。
  • 啟動:innotop -u root -p xxx -h 127.0.0.1

其他常用工具

  • mysqlsla:慢查詢日誌分析報表。
  • iibench:InnoDB 插入基準測試。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved