今天主要分享一款MySQL日志分析神器--mysqlsla,對于我們分析mysql數據庫的三大日志還不錯,這里介紹一下。
Mysqlsla 是daniel-nichter 用perl 寫的一個腳本,專門用于處理分析Mysql的日志而存在。作為一名Mysql DBA,日常工作中處理日志是再正常不過的事情了。
通過Mysql的日志主要分為:General log,slow log,binary log三種。通 過query日志,我們可以分析業(yè)務的邏輯,業(yè)務特點。通過slow log,我們可以找到服務器的瓶頸。通過binary log,我們可以恢復數據。Mysqlsla 可以處理其中的任意日志,這也是我喜歡它的最主要原因之一。
一般我們分析mysql日志的工具有:
下面做一個對比
根據以上特點,最適合的工具非 mysqlsla 與 pt-query-digest 莫屬。 mysqlsla與pt-query-digest的作者是同一個人?,F在主打開發(fā)pt系列工具。pt的工具下次再做介紹,今天主要介紹下mysqlsla。
mysqlsla大致流程是: LOGS(UDL,defalut) -> parse -> filter -> sort -> reprot -> replay .
這里說的,Mysqlsla可以處理任意日志。默認可以處理mysql的三種常見日志。
如:General log,binary log,slow log
下載地址:https://github.com/daniel-nichter/hackmysql.com
git clone https://codeload.github.com/daniel-nichter/hackmysql.com/zip/master
unzip hackmysql.com-master.zip -d mysql-tool
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-Time-HiRes perl-DBI
perl Makefile.PL
make && make install
1、開啟慢查詢
set global slow_query_log=on;
set global long_query_time=10;
set global log_queries_not_using_indexes=on;
2、mysqlsla輸出
命令:# mysqlsla -lt slow /data/datafile/ZL-FSL-OCS-DB-slow.log
格式說明如下:
總查詢次數 (queries total), 去重后的sql數量 (unique)
輸出報表的內容排序(sorted by)
最重大的慢sql統(tǒng)計信息, 包括平均執(zhí)行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.
Count, sql的執(zhí)行次數及占總的slow log數量的百分比.
Time, 執(zhí)行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執(zhí)行時間.
Lock Time, 等待鎖的時間.
95% of Lock , 95%的慢sql等待鎖時間.
Rows sent, 結果行統(tǒng)計數量, 包括平均, 最小, 最大數量.
Rows examined, 掃描的行數量.
Database, 屬于哪個數據庫
Users, 哪個用戶,IP, 占到所有用戶執(zhí)行的sql百分比
Query abstract, 抽象后的sql語句
Query sample, sql語句
這里主要整理了mysqlsla入門方面的內容,后面再分享下怎么去自定義模板,感興趣的朋友可以關注一下~