5種mysql日誌分析工具比拼

2021-06-18 02:37:33 字數 2920 閱讀 5294

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

一、mysqldumpslow

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

主要功能有:

統計不同慢sql的出現次數(count) 執行最長時間(time), 累計總耗費時間(time), 等待鎖的時間(lock), 傳送給客戶端的行總數(rows), 掃瞄的行總數(rows), 使用者以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit n,n 表示). 

二、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語句。

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

三、mysql-explain-slow-log

德國人寫的乙個perl指令碼。

功能上有點瑕疵, 不僅把所有的 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的5種日誌分析工具

mysql日誌是很重要的,主要在本文介紹mysql日誌分析的5種工具,並對它們進行比較。mysql slow log 是用來記錄執行時間較長 超過long query time秒 的sql的一種日誌工具.啟用 slow log 有兩種啟用方式 1,在my.cnf 裡 通過 log slow quer...

mysql慢日誌分析工具之mysqlsla學習筆記

一 安裝 shell wget shell tar zvxf mysqlsla 2.03.tar.gz shell cd mysqlsla 2.03 shell perl makefile.pl shell make shell make install shell mysqlsla data my...

mysql查詢日誌分析 mysql日誌分析

日誌檔案 log 就是乙個跟蹤記錄的列表,它可以協助我們時刻掌握系統及應用服務的動作狀態,在故障排查的時候提供最詳細準確地資訊,幫助我們快速查詢原因,減少我們憑主觀的經驗去猜測,這樣的答案更具有說服力,機器通常是不會撒謊的。任何的系統,無論是作業系統 資料庫 應用伺服器他們都會有自己的log檔案,而...