mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览慢查询日志做为一项日常工作,直接阅读mysql生成的慢查询日志就有可能比较低效了。

除了操作系统命令直接查看slowlog外,mysql自己也提供了一个阅读slowlog的命令行工具:mysqldumpslow,该命令行提供了一定的分析汇总功能,可以将多个类似的SQL语句抽象显示成一个,不过功能还是有些简陋,除此之外,还有不少的第三方工具,可用于分析mysql慢查询日志,mysqlsla不仅仅可用来处理慢查询日志,也可以用来分析其它日志比如二进制日志,普通查询日志等等,其对sql语句的抽象功能非常实用

get http://www.cpan.org/modules/by-module/DBI/DBI-1.630.tar.gz

wget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.025.tar.gz

tar xf DBI-1.630.tar.gz

cd DBI-1.630

perl Makefile.PL

make &&make install

ls

tar xf DBD-mysql-4.025.tar.gz

cd DBD-mysql-4.025

perl Makefile.PL

echo $?

make &&make install

rpm -qa mysql-devel

yum install mysql-devel -y

tar xf mysqlsla-2.03.tar.gz

cd mysqlsla-2.03

perl Makefile.PL

make &&make install

[root@localhost opt]# tar xf mysqlsla-2.03.tar.gz

[root@localhost opt]# cd mysqlsla-2.03

[root@localhost mysqlsla-2.03]# ls

bin  Changes  INSTALL  lib  Makefile.PL  MANIFEST  META.yml  README

[root@localhost mysqlsla-2.03]# perl Makefile.PL

Checking if your kit is complete...

Looks good

Writing Makefile for mysqlsla

[root@localhost mysqlsla-2.03]# make &&make install

cp lib/mysqlsla.pm blib/lib/mysqlsla.pm

cp bin/mysqlsla blib/script/mysqlsla

/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/mysqlsla

Manifying blib/man3/mysqlsla.3pm

Installing /usr/local/share/perl5/mysqlsla.pm

Installing /usr/local/share/man/man3/mysqlsla.3pm

Installing /usr/local/bin/mysqlsla

Appending installation info to /usr/lib64/perl5/perllocal.pod

下面报错:

[root@localhost mysqlsla-2.03]# mysqlsla --help

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 /usr/local/bin/mysqlsla line 2095.

BEGIN failed--compilation aborted at /usr/local/bin/mysqlsla line 2095.

解决方案:

.pm实际上是Perl的包,只需安装如下软件包即可:

yum install perl-Time-HiRes

验证解决:

[root@localhost mysqlsla-2.03]# mysqlsla --help

man mysqlsla for help or visit http://hackmysql.com/mysqlsla

参数意义

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

参考博文:

http://blog.csdn.net/ls3648098/article/details/9303237

测试:

[root@localhost ~]# mysqlsla -lt slow /root/test.slow.log -sf "+select" -top 2 -sort c_sum

Report for slow logs: /root/test.slow.log

5 queries total, 1 unique

Sorted by 'c_sum'

Grand Totals: Time 19 s, Lock 0 s, Rows sent 5, Rows Examined 88.00k

______________________________________________________________________ 001 ___

Count         : 5  (100.00%)

Time          : 19 s total, 3.8 s avg, 3 s to 5 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 : 17.60k avg, 17.60k to 17.60k max  (100.00%)

Database      :

Users         :

junsansi@ 192.168.1.27 : 60.00% (3) of query, 60.00% (3) of all users

jss@ 192.168.1.26 : 40.00% (2) of query, 40.00% (2) of all users

Query abstract:

SELECT MIN(doc_his_id) AS doc_his_id FROM t_******** WHERE doc_his_isteammate=N AND doc_his_editor_user_id_encrypt='S';

Query sample:

select min(DOC_HIS_ID) AS DOC_HIS_ID from t_******** where DOC_HIS_ISTEAMMATE=1 and DOC_HIS_EDITOR_USER_ID_ENCRYPT='nfEACAwQEW1MICAN2';

mysql慢日志分析工具_MySQL慢日志分析工具mysqlsla相关推荐

  1. mysql配置日志老化配置_mysql中日志的配置与分析

    默认情况下,如果日志没有配置,则只记录错误日志,记录到syslog,配置文件 /etc/mysql/conf.d/mysqld_safe_syslog.cnf (ubuntu下) [mysqld_sa ...

  2. mysql 数据库日志管理工具_mysql mysqlbinlog日志管理工具使用教程

    一.概述 由于服务器生成的二进制日志文件以二进制格式保存,所以如果要想检查这些文件的文本格式,就会用到mysqlbinlog日志管理工具. mysqlbinlog的语法如下: mysqlbinlog ...

  3. mysql 错误日志 占用硬盘_MySQL慢日志占满磁盘空间导致业务主库宕机解决

    在MySQL的日常维护中,我们总会遇到这样或那样的问题,对于那些经常发生且有处理经验的事故,不论是新手还是老司机都能在故障规定的容错时间内解决.而对于那些不常见.比较棘手的问题,新手上路可能就显得举足 ...

  4. mysql日志文件名字_MySQL各类日志文件相关变量介绍

    文章转自:http://www.ywnds.com/?p=3721 查询所有日志的变量 1 mysql>show global variables like'%log%'; GLOBAL表示查全 ...

  5. mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库

    二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...

  6. mysql 二进制日志详解_Mysql二进制日志详解

    引言 注:图片取自网络 提一下比较重要的几个: 重做日志(Redo Log):重做日志是实现mysql事务的持久性的原理之一,当新增数据时,Redo Log会备份新数据,在事务提交前,只要持久化Red ...

  7. mysql二进制日志内容说明_MySQL二进制日志相关问题详细说明

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  8. mysql配置日志老化配置_mysql配置-日志大小限制和自动删除

    线上的项目磁盘消耗问题, 发现和MySQL日志有关系. 需要处理的问题 如何限制大小 不让日志无限膨胀? 配置日志不留? 删除的方式和直接删除会对服务有什么影响? 解决方式 限制大小, 保留最近一段时 ...

  9. mysql的报错日志哪里看_mysql错误日志

    ### 错误日志是非常有用的东西,在上一篇 mysql字符集 中,因为看了网上很多博客,修改字符集的时候,在服务端` [mysqld]`下添加的变量内容为(博客里写的是这个变量,有很多博客都这样写,可 ...

  10. mysql 8.0 慢查询_MySQL慢查询分析

    [伍哥原创] 在我们做系统性能调优的时候,数据库的慢查询语句的优化是必不可少的,特别是电子商务类型的重度MYSQL应用类型. 下面我们一起来看看怎么做好MYSQL的慢查询分析吧. 1,开启MYSQL的 ...

最新文章

  1. photoshop CS5 Dreamweaver CS5序列号及完美破解方法
  2. layui单元格鼠标样式_Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法...
  3. centos7离线安装tengine所需依赖
  4. Ubuntu下实现eth0与wlan0完美桥接
  5. c#_导出table功能
  6. std::thread详解
  7. eclipse中导入maven项目时pom文件报错
  8. 有人问我,一个人创业需要什么技能?
  9. mysql查询中使用别名_如何在MySQL选择查询中使用别名?
  10. jupyter notebook 中添加 Julia kernel
  11. 《Java程序员全攻略:从小工到专家》连载二:IT行情分布
  12. 【重大改革】吴恩达:孩子会识字后立马教她Python!
  13. 在utf8和gb2312中 不同编码情况下,汉字 数字 英文占的字节数?
  14. Python 读取MODIS叶绿素-a浓度.nc文件
  15. ubuntu16.04中将python3设置为默认
  16. unity Mesh Renderer的一点想法
  17. 前端视频截图的方法canvas.drawImage()
  18. IP地址配置错误网络无法连接怎么解决Win10?
  19. 微信公众号三方平台开发【pre_auth_code篇】
  20. Android 10动态申请读写权限

热门文章

  1. mysql explain G_MySQL 性能优化神器 Explain 使用分析
  2. 物联网的体系结构分为_初学物联网信息安全、3
  3. SpringBoot2.0高级案例(02) :整合 RocketMQ ,实现请求异步处理
  4. 设计者模式详解--状态模式
  5. 【Docker端口映射】
  6. SPOJ375 Query on a tree(LCT边权)
  7. ASP.NET中登录后反复跳转回登录页面
  8. springboot的异常处理
  9. Zookeeper之事件监听机制
  10. 并发编程学习之原子变量类