天天看點

mysql慢查詢日志學習

mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,功能非常強大. 資料報表,非常有利于分析慢查詢的原因, 包括執行頻率, 資料量, 查詢消耗等。

一、使用

<code>1</code>

<code># mysqlsla -lt slow mysql-slow.log</code>

或者

<code># mysqlsla -lt slow mysql-slow.log -sf “+SELECT” -db dbName -top 10 -sort t_sum</code>

參數說明:

lt:表示日志類型,有slow, general, binary, msl, udl。

sf:[+-][TYPE],[TYPE]有SELECT, CREATE, DROP, UPDATE, INSERT,例如”+SELECT,INSERT”,不出現的預設是-,即不包括。

db:要處理哪個庫的日志。

top:表示取按規則排序的前多少條。

sort:按某種規則排序,t_sum按總時間排序, c_sum按總次數排序。

二、分析結果

總查詢次數 (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語句

三、安裝

<code># wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz</code>

<code>2</code>

<code># tar zxvf mysqlsla-2.03.tar.gz</code>

<code>3</code>

<code># cp mysqlsla-2.03/bin/mysqlsla /usr/local/bin</code>

如果提示“Can’t locate DBI.pm”,執行以下指令

<code># yum install perl-DBI perl-DBD-MySQL -y</code>

<code># mysqlsla -lt slow slow.log</code>

四、執行個體

<code># mysqlsla /tmp/mysqlslow.log | less</code>

Auto-detected logs as slow logs

Report for slow logs: /tmp/mysqlslow.log

6 queries total, 6 unique

Sorted by ‘t_sum’

Grand Totals: Time 0 s, Lock 0 s, Rows sent 13, Rows Examined 13

______________________________________________________________________ 001 ___

Count : 1 (16.67%)

Time : 2.321 ms total, 2.321 ms avg, 2.321 ms to 2.321 ms max (47.20%)

Lock Time (s) : 629 ?s total, 629 ?s avg, 629 ?s to 629 ?s max (77.75%)

Rows sent : 8 avg, 8 to 8 max (61.54%)

Rows examined : 8 avg, 8 to 8 max (61.54%)

Database :

Users :

root@ 192.168.1.100 : 100.00% (1) of query, 100.00% (6) of all users

Query abstract:

SET timestamp=N; SHOW variables LIKE ‘S’;

Query sample:

SET timestamp=1252395365;

show variables like ‘%character%’;

……

格式說明如下:

最重大的慢sql統計資訊, 包括平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.

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

本文轉自 小羅ge11 51CTO部落格,原文連結:http://blog.51cto.com/xiaoluoge/1589387,如需轉載請自行聯系原作者