常用的mysql slowquery日志分析工具 有一篇不錯的關於mysql優化的文章,無非都是從硬件,SQL語句方面進行入手,當然這裡面最重要的是 sql 語句了,所以我們要經常 trace 這些 sql 語句。 mysql slow log 是用來記錄執行時間較長(超過long_query_time秒)的sql的一種日志工具! 啟用 slow log 有兩種啟用方式: 1, 在my.cnf 裡 通過 log-slow-queries[=file_name] 2, 在mysqld進程啟動時,指定–log-slow-queries[=file_name]選項 mysqldumpslow mysqlsla myprofi mysql-explain-slow-log mysqllogfilter ----------------------- 1、mysqldumpslow mysql官方提供的慢查詢日志分析工具. 主要功能是, 統計不同慢sql的 出現次數(Count), 執行最長時間(Time), 累計總耗費時間(Time), 等待鎖的時間(Lock), 發送給客戶端的行總數(Rows), 掃描的行總數(Rows), 用戶以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示). 2、mysqlsla hackmysql.com推出的一款日志分析工具(該網站還維護了 mysqlreport, mysqlidxchk 等比較實用的mysql工具) 整體來說, 功能非常強大. 數據報表,非常有利於分析慢查詢的原因, 包括執行頻率, 數據量, 查詢消耗等. 格式說明如下: 總查詢次數 (queries total), 去重後的sql數量 (unique) 輸出報表的內容排序(sorted by) 最重大的慢sql統計信息, 包括 平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數. Count, sql的執行次數及占總的slow log數量的百分比. Time, 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比. 95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執行時間. Lock Time, 等待鎖的時間. 95% of Lock , 95%的慢sql等待鎖時間. Rows sent, 結果行統計數量, 包括平均, 最小, 最大數量. Rows examined, 掃描的行數量. Database, 屬於哪個數據庫 Users, 哪個用戶,IP, 占到所有用戶執行的sql百分比 Query abstract, 抽象後的sql語句 Query sample, sql語句