mysql慢查询日志分析工具mysqlsla

一、介绍   

mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比、执行时间、等待销的时间等。

公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla;使用方便,操作简单。

二、安装mysqlsla

系统环境

CentOS release 6.6 (Final)
2.6.32-504.el6.x86_64

官网已经不能下载,所需要的文件已在百度云盘共享。

百度云盘文件下载地址:http://pan.baidu.com/s/1kVvyUYN

1、下载安装mysqlsla

mkdir -p /server/tools

从百度云盘下载mysqlsla-2.03.tar.gz到/server/tools目录下

cd /server/tools
tar xf mysqlsla-2.03.tar.gz
cp mysqlsla-2.03/bin/mysqlsla /usr/local/bin

注意:

注:若在执行的过程中出现以下错误,需要安装perl-DBI perl-DBD-MySQL。

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.

解决方法:

yum install perl-DBI perl-DBD-MySQL -y


三、mysqlsla使用

使用示列:

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

显示的结果
....
______________________________________________________________________ 001 ___
Count         : 1.30k  (83.88%)
Time          : 3924.256013 s total, 3.016338 s avg, 2.00058 s to 7.387539 s max  (80.80%)
  95% of Time : 3518.198185 s total, 2.848743 s avg, 2.00058 s to 5.495059 s max
Lock Time (s) : 233.705 ms total, 180 μs avg, 63 μs to 26.485 ms max  (26.48%)
  95% of Lock : 168.319 ms total, 136 μs avg, 63 μs to 210 μs max
Rows sent     : 67 avg, 0 to 323 max  (3.60%)
Rows examined : 853.77k avg, 852.04k to 855.00k max  (89.56%)
Database      :
Users         :
        [email protected] 10.160.51.219 : 100.00% (1301) of query, 99.81% (1548) of all users

Query abstract:
SELECT a.*,b.real_name AS user_name,b.order_operator_id,b.back_status FROM approval_record a LEFT JOIN loan_order b ON a.order_no=b.order_no WHERE N=N AND a.is_del = N AND ifnull(a.message_cont
ent,‘S‘) <>‘S‘ AND a.approval_user = N ORDER BY approval_record_id DESC;

Query sample:
select a.*,b.REAL_NAME as USER_NAME,b.ORDER_OPERATOR_ID,b.BACK_STATUS from APPROVAL_RECORD a            left join loan_order b on a.ORDER_NO=b.ORDER_NO                 where 1=1               a
nd a.IS_DEL = 0 and  IFNULL(a.MESSAGE_CONTENT,‘‘) <>‘‘                                                 and                     a.APPROVAL_USER = 9184
  
....

命令参数解释:

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

参考blog:

分析mysql慢查询日志的好工具--mysqlsla

MySQL慢日志分析工具mysqlsla

时间: 2024-08-06 03:47:07

mysql慢查询日志分析工具mysqlsla的相关文章

mysql慢查询日志分析工具 mysqlsla(转)

mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览慢查询日志做为一项日常工作,直接阅读mysql生成的慢查询日志就有可能比较低效了. 除了操作系统命令直接查看slowlog外,mysql自己也提供了一个阅读slowlog的命令行工具:mysqldumpslow,该命令行提供了一定的分析汇总功能,可以将多个类似的SQL语句抽象显示成一个,不过功能还是

mysql慢查询日志分析工具使用

参考:  5种mysql日志分析工具比拼 http://blog.csdn.net/gzh0222/article/details/10384475 1.mysql-log-filter工具脚本使用说明: google code上找到的一个分析工具.提供了 python 和 php 两种可执行的脚本.http://code.google.com/p/mysql-log-filter/ (需要搬梯子爬墙),51cto下载链接: 使用方法:(这里只介绍python的使用方法) python mysq

记一次mysql慢查询日志分析

MySQL慢查询日志分析 分析工具mysqlsla的安装以及使用,mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等. 在CentOS下安装mysqlsla yum install perl-DBI perl-DBD-MySQL perl-devel -y #安装依赖包 wget ftp://ftp.tw.freebsd.org/pub/distfiles/mysqlsla-

慢查询日志分析工具mysqldumpslow

mysqldumpslow是mysql自带的一种慢查询日志分析工具,顾名思义,就是查询那些出那些查询慢的SQL语句,由此分析出SQL查询效率慢的原因. 通常来说,mysqldumpslow分组查询的结果是相似的,它在展示统计结果时,可以将数字和字符串分别抽象成"N"和"S".当然也可以用-a 和 -n选项可以用来修改这些抽象的行为. mysqldumpslow查询命令 mysqldumpslow [options] [log_file] mysqldumpslow可

mysql 慢查询日志分析

mysql慢查询: 慢查询相关的变量 slow_query_log:该参数控制着慢查询的状态, 1表示开启状态 ,0 表示关闭状态 slow_query_log_file:慢查询日志路径 long_query_time:最大查询阀值,查询的时间超过这个值就视为慢查询并且将其记录到慢查询日志中,慢查询日志路径 通过slow_query_log_file 这个变量设置 log_queries_not_using_indexes:没有使用到索引的查询语句是否记录到慢查询日志中. log_slow_sl

pt-query-digest查询日志分析工具

1. 工具简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等,可以借助分析结果找出问题进行优化. pt-query-digest是一个perl脚本,只需下载并赋权即可执行.[

mysql慢查日志分析工具 percona-toolkit

备忘自: http://blog.csdn.net/seteor/article/details/24017913 1. 工具简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比

MySQL执行语句日志分析工具

由于项目更新了一大版本,过不了多久就会进行一次SQL语句查询的优化任务,由运维部分导出一份历史查询SQL语句日志给开发部门做优化分析工作.以前写过一个日志分析的工具,可以不是很好,所以最近又花了几天时间,完善了这个工具.下面,我来说一下,开发历程: 一.任务分析: 1.工具界面: 2.具体需求:分类统计.忽略参数.调试错误 3.预想效果:参数部分用 ? 代替,工具效果展示: 二.开发编码:(读取(bgWorke),写入) 1.变量设置: static string resultFile;//日志

mysql慢查询日志分析

如何开启慢查询日志? 在mysql配置文件my.cnf中增加 log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log)long_query_time=2 (记录超过的时间,默认为10s)log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)log-long-format (如果设置了,所有没有使用索