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

MySQL 慢查詢發現與分析雙引擎:長查詢日志 + mysqldumpslow 實戰

     編輯:MySQL 綜合教學

MySQL 慢查詢發現與分析雙引擎:長查詢日志 + mysqldumpslow 實戰

慢查詢是效能調優切入點。本文講解 long_query_time 動態配置、慢查詢日志開啟、mysqldumpslow 多維度分析 Top SQL,構建「發現→分析→優化」閉環。

方法一:慢查詢日誌(即時發現)

核心變量

方法二:mysqldumpslow 离線分析(歷史總結)


實戰案例

mysqldumpslow -s c -t 10 /var/log/mysql/slow.logmysqldumpslow -s t -t 10 /var/log/mysql/slow.logmysqldumpslow -s r -t 10 /var/log/mysql/slow.logmysqldumpslow -s t -t 10 -g "left join" /var/log/mysql/slow.log
命令用途
最高頻 Top 10
最耗時 Top 10
返回行數最多 Top 10
含 LEFT JOIN 的最耗時 Top 10

進階:結合 EXPLAIN 與 PROFILE

  1. 從 mysqldumpslow 獲取疑似 SQL
  2. EXPLAIN 看執行計劃:索引、掃描行數、臨時表、filesort
  3. SET profiling=1; EXECUTE SQL; SHOW PROFILE FOR QUERY n; 看階段耗時
  4. 針對性優化:加索引、改寫 SQL、調參數、分表

生產環境最佳實踐

  • 慢查詢日志**默認開啟**,long_query_time=1(核心業務可設 0.5)
  • 日志輪轉:logrotate 每天切割、保留 30 天、壓縮
  • 集中收集:ELK/Fluentd 接入日志平台,配合告警
  • 定期審計:每周跑 mysqldumpslow -s t -t 20 產出優化清單
  • 關閉 log_queries_not_using_indexes 於高併發核心庫(噪音太大),改用 Performance Schema 監控
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved