mysqlsla慢查询

myslqsla慢查询

     mysqlsla是一个分析mysql的慢查询工具,功能强大,可以分析出慢查询的原因,包括执行某条SQL语句的出现的次数及在slow log数据的百分比 执行时间 等待时间等

        一,如何安装

  1. 下载mysqlsla  http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
  2. tar xf mysqlsla-2.03.tar.gz  #解压安装包
  3. cd mysqlsla-2.03
  4. perl Makefile.PL  #配置
  5. make   #编译
  6. make install  #安装

     二,出现问题的解决方法

  1. Can't locate ExtUtils/MakeMaker.pm

    解决:yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
若在执行的过程中出现以下错误:
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@ceshi ~]# mysqlsla -lt slow /data/3306/data/ceshi-slow.log
Report for slow logs: /data/3306/data/ceshi-slow.log
1 queries total, 1 unique
Sorted by 't_sum'
Grand Totals: Time 6 s, Lock 0 s, Rows sent 1, Rows Examined 0


______________________________________________________________________ 001 ___
Count : 1 (100.00%)
Time : 6.001296 s total, 6.001296 s avg, 6.001296 s to 6.001296 s max (100.00%)
Lock Time (s) : 0 total, 0 avg, 0 to 0 max (0.00%)
Rows sent : 1 avg, 1 to 1 max (100.00%)
Rows examined : 0 avg, 0 to 0 max (0.00%)
Database :
Users :
yang@localhost : 100.00% (1) of query, 100.00% (1) of all users

Query abstract:
SET timestamp=N; SELECT sleep(N);

Query sample:
SET timestamp=1513150838;
select sleep(6);

猜你喜欢

转载自www.cnblogs.com/cuifeng/p/9023628.html