mysqlsla(MySQL Statement Log Analyzer)是 Perl 編寫的慢日志分析工具,能快速定位性能瓶頸,支持 Slow/General/Binary 等多種日志格式,輸出豐富統計指標。本文詳細記錄從下載、依賴解決、安裝到實戰參數講解的完整流程。
wget https://hackmysql.com/scripts/mysqlsla-2.03.tar.gz tar -zxvf mysqlsla-2.03.tar.gz cd mysqlsla-2.03
執行 perl Makefile.PL 檢查 CPAN 依賴,輸出 Looks good 表示通過。隨後編譯安裝:
make && make install
安裝完成後,mysqlsla 命令將部署至 /usr/bin/,模塊安裝至 Perl 庫目錄。
| 參數 | 別名 | 說明 |
|---|---|---|
--log-type | -lt | 日志類型:slow、general、binary、msl、udl。分析慢查詢指定 slow。 |
--sort | 排序依據:t_sum(總耗時,默認)、c_sum(總次數)。 | |
--top | 顯示前 N 條 SQL,默認 10。 | |
--statement-filter | -sf | SQL 類型過濾:+SELECT,INSERT 只分析 SELECT/INSERT,-UPDATE 排除 UPDATE。默認排除未列出類型。 |
--databases | -db | 指定分析的數據庫,多個用逗號分隔。 |
# 1. 分析慢查詢中所有 SELECT,按耗時排序取 Top 10 mysqlsla -lt slow -sf "+select" -top 10 download_server1-slow.log > test_time.log # 2. 分析 ultraxsmutf8 庫的 SELECT/UPDATE,按次數排序取 Top 100 mysqlsla -lt slow -sf "+select,update" -top 100 -sort c_sum -db ultraxsmutf8 download_server1-slow.log > num_time.log
提示:日志文件較大時建議先切分(如按天),避免單次分析耗時過長。結合 pt-query-digest 可實現更豐富的聚合與報表輸出。