设为首页 收藏本站
查看: 635|回复: 0

[经验分享] MySQL慢日志分析工具mysqlsla-10931853

[复制链接]

尚未签到

发表于 2018-10-7 13:42:40 | 显示全部楼层 |阅读模式
  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';


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-614386-1-1.html 上篇帖子: mysql全库备份 下篇帖子: 数据库MySQL简单操作(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表