MySQL慢日志分析工具mysqlsla

    mysqlsla是一个分析mysql慢日志的工具,由hackmysql.com推出,功能强大,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比、执行时间、等待销的时间等。
    
 如何安装

下载地址: http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz   

1.  tar -zxvf mysqlsla-2.03.tar.gz 

2.  cd bin 

3. cp mysqlsla /usr/local/mysql3306/bin/  将mysqlsla 复制到msyql的bin目录下

4. 执行:

mysqlsla -lt slow mysql-slow.log
或者
mysqlsla -lt slow mysql-slow.log -sf “+SELECT” -db dbName -top 10 -sort t_sum

注:
若在执行的过程中出现以下错误:
Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Run line 6.
BEGIN failed--compilation aborted at ./Run line 6.

解决方案:
.pm实际上是Perl的包,只需安装如下软件包即可:
yum install perl-Time-HiRes

参数意义

lt:表示日志类型,有slow, general, binary, msl, udl。
sf:[+-][TYPE],[TYPE]有SELECT, CREATE, DROP, UPDATE, INSERT,例如”+SELECT,INSERT”,不出现的默认是-,即不包括。
db:要处理哪个库的日志。
top:表示取按规则排序的前多少条。
sort:按某种规则排序,t_sum按总时间排序, c_sum按总次数排序。
 
结果解释:

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


测试:

[root@mwtec-80 bin]# ./mysqlsla -lt slow /tmp/slow_query.log215 -sf "+select" -top 2 -sort c_sum
Report for slow logs: /tmp/slow_query.log215
13 queries total, 7 unique
Sorted by 'c_sum'
Grand Totals: Time 219 s, Lock 0 s, Rows sent 10.63k, Rows Examined 59.31M


______________________________________________________________________ 001 ___
Count         : 3  (23.08%)
Time          : 3.730898 s total, 1.243633 s avg, 1.243623 s to 1.243651 s max  (1.70%)
Lock Time (s) : 0 total, 0 avg, 0 to 0 max  (0.00%)
Rows sent     : 1 avg, 1 to 1 max  (0.03%)
Rows examined : 0 avg, 0 to 0 max  (0.00%)
Database      : 
Users         : 
        diandong@ 10.31.247.159 : 66.67% (2) of query, 46.15% (6) of all users
        diandong@ 10.31.247.212 : 33.33% (1) of query, 7.69% (1) of all users

Query abstract:
SELECT @@session.tx_isolation;

Query sample:
SELECT @@session.tx_isolation;

______________________________________________________________________ 002 ___
Count         : 3  (23.08%)
Time          : 27.367664 s total, 9.122555 s avg, 9.121485 s to 9.124615 s max  (12.48%)
Lock Time (s) : 0 total, 0 avg, 0 to 0 max  (0.00%)
Rows sent     : 1 avg, 1 to 1 max  (0.03%)
Rows examined : 0 avg, 0 to 0 max  (0.00%)
Database      : diandong
Users         : 
        diandong@ 10.31.247.159 : 100.00% (3) of query, 46.15% (6) of all users

Query abstract:
SELECT N;

Query sample:
select 1;

你可能感兴趣的:(mysql-常规优化)