mysql慢日誌統計去重 mysql 慢日誌分析

2021-10-19 16:32:34 字數 2208 閱讀 9796

啟用 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

mysqldumpslow, mysql官方提供的慢查詢日誌分析工具. 輸出圖表如下

主要功能是, 統計不同慢sql的

出現次數(count),

執行最長時間(time),

累計總耗費時間(time),

等待鎖的時間(lock),

傳送給客戶端的行總數(rows),

掃瞄的行總數(rows),

使用者以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit n,n 表示).

講一下有用的引數:

-s 排序選項:c 查詢次數 r 返回記錄行數 t 查詢時間

-t 只顯示top n條查詢

mysqldumpslow -s r -t 10 slow.log

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語句

除了以上的輸出, 官方還提供了很多定製化引數, 是一款不可多得的好工具.

功能上有點瑕疵, 不僅把所有的 slow log 列印到螢幕上, 而且統計也只有數量而已. 不推薦使用.

mysql-log-filter, google code上找到的乙個分析工具.提供了 python 和 php 兩種可執行的指令碼.

功能上比官方的mysqldumpslow, 多了查詢時間的統計資訊(平均,最大, 累計), 其他功能都與 mysqldumpslow類似.

特色功能除了統計資訊外, 還針對輸出內容做了排版和格式化, 保證整體輸出的簡潔. 喜歡簡潔報表的朋友, 推薦使用一下.

myprofi, 純php寫的乙個開源分析工具.專案在 sourceforge 上.

功能上, 列出了總的慢查詢次數和型別, 去重後的sql語句, 執行次數及其佔總的slow log數量的百分比.

從整體輸出樣式來看, 比mysql-log-filter還要簡潔. 省去了很多不必要的內容. 對於只想看sql語句及執行次數的使用者來說, 比較推薦.

總結工具/功能

一般統計資訊

高階統計資訊

指令碼優勢

mysqldumpslow

支援不支援

perl

mysql官方自帶

mysqlsla

支援支援

perl

功能強大,資料包表齊全,定製化能力強.

mysql-explain-slow-log

支援不支援

perl

無mysql-log-filter

支援部分支援

python or php

不失功能的前提下,保持輸出簡潔

myprofi

支援不支援

php非常精簡

mysql開啟慢查詢日誌 MySQL慢日誌體系建設

慢查詢日誌是mysql提供的一種日誌記錄,用來記錄在mysql中響應時間超過閾值的sql語句,在很大程度上會影響資料庫整體的效能,是mysql優化的乙個重要方向。在58的雲db平台建設中,慢sql系統作為乙個非常重要功能模組,不僅是dba日常運維使用,我們也希望通過該功能可以協助開發人員更快速定位業...

mysql慢日誌時間 MySQL慢查詢日誌優化

一 慢查詢日誌概念 mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。long query time的預設值為10,意思是執行10s以上的語句。預設情況下,mys...

mysql慢日誌解析 mysql 慢日誌分析

啟用 slow log 有兩種啟用方式 1,在my.cnf 裡 通過 log slow queries file name 2,在mysqld程序啟動時,指定 log slow queries file name 選項 比較的五款常用工具 mysqldumpslow,mysqlsla,myprofi...