当前位置: 首页 > news >正文

mysql 统计查询总数_详解慢查询日志分析工具mysqlsla--概念、选型、安装及实例说明...

概述

今天主要分享一款MySQL日志分析神器--mysqlsla,对于我们分析mysql数据库的三大日志还不错,这里介绍一下。


什么是mysqlsla?

Mysqlsla 是daniel-nichter 用perl 写的一个脚本,专门用于处理分析Mysql的日志而存在。作为一名Mysql DBA,日常工作中处理日志是再正常不过的事情了。

通过Mysql的日志主要分为:General log,slow log,binary log三种。通 过query日志,我们可以分析业务的逻辑,业务特点。通过slow log,我们可以找到服务器的瓶颈。通过binary log,我们可以恢复数据。Mysqlsla 可以处理其中的任意日志,这也是我喜欢它的最主要原因之一。


为什么选择mysqlsla?

一般我们分析mysql日志的工具有:

  • mysqldumpslow
  • mysqlbinlog
  • myprofi
  • mysql-explain-slow-log
  • mysql-log-filter
  • pt-query-digest
  • mysqlsla

下面做一个对比

951bfbf6038e9395678491be3c767ee1.png

根据以上特点,最适合的工具非 mysqlsla 与 pt-query-digest 莫属。 mysqlsla与pt-query-digest的作者是同一个人。现在主打开发pt系列工具。pt的工具下次再做介绍,今天主要介绍下mysqlsla。


mysqlsla流程

mysqlsla大致流程是: LOGS(UDL,defalut) -> parse -> filter -> sort -> reprot -> replay .

b33ad042c6c305442391f8d3ec2820ee.png

这里说的,Mysqlsla可以处理任意日志。默认可以处理mysql的三种常见日志。

如:General log,binary log,slow log

  • Slow log: mysqlsla ­lt slow slow.log
  • General log: mysqlsla ­lt general general.log
  • Binary log: mysqlbinlog bin.log | mysqlsla ­lt binary ­

mysqlsla安装部署

下载地址:https://github.com/daniel-nichter/hackmysql.com

git clone https://codeload.github.com/daniel-nichter/hackmysql.com/zip/masterunzip hackmysql.com-master.zip -d mysql-toolyum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-Time-HiRes perl-DBIperl Makefile.PL make && make install 
05208086b17f3def46bd9a3ec67e355f.png

mysqlsla例子

1、开启慢查询

set global slow_query_log=on;set global long_query_time=10;set global log_queries_not_using_indexes=on;
4ec83b160ef2b0722927dd73936195b0.png

2、mysqlsla输出

命令:# mysqlsla -lt slow /data/datafile/ZL-FSL-OCS-DB-slow.log

ca8c539f20aa33211312f78cd3d34b4e.png
格式说明如下:总查询次数 (queries total), 去重后的sql数量 (unique)输出报表的内容排序(sorted by)最重大的慢sql统计信息, 包括平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.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语句

这里主要整理了mysqlsla入门方面的内容,后面再分享下怎么去自定义模板,感兴趣的朋友可以关注一下~

b5edf190e3fa798c81ca1350000d862f.gif

相关文章:

  • python去除注释语句_Python文件去除注释的方法
  • qtdesigner 如何清空输入框_如何进行开发需求分解?
  • struts2 404找不到action_看到这些404页面文案,就算网页打不开也值了
  • filezilla 后文件传输失败_超好用!这款大文件传输工具,能把其他软件摁在地上摩擦!...
  • python淘宝秒杀脚本视频教程_Python脚本实现淘宝准点秒杀功能
  • 大数据学习路线_好程序员大数据学习路线分享UDF函数
  • pythonscatter简书_Python笔记 - tkinter
  • 模糊查询正则语句_数据分析进阶—简单查询
  • python编写一个排序函数要求数据输入_python自学日记9——选择数据结构
  • python输出语句print_Python每日3题print(c)会输出什么?
  • 命令行参数python sys模块_Python中处理命令行参数的3种方法
  • python菜鸟教程for循环_Python for 循环语句
  • 格力手机2 官方固件_格力悄悄上线首部双模5G手机:搭载骁龙765G,售价2699元起...
  • c#怎么拟合函数得到参数_数值计算(三十七)给定函数的参数拟合
  • python decorators_Python进阶之强大的装饰器 Decorators (一)
  • CSS盒模型深入
  • HTML中设置input等文本框为不可操作
  • java 多线程基础, 我觉得还是有必要看看的
  • JavaScript类型识别
  • jquery cookie
  • Object.assign方法不能实现深复制
  • SpringBoot几种定时任务的实现方式
  • TCP拥塞控制
  • VuePress 静态网站生成
  • 包装类对象
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 京东美团研发面经
  • 手写一个CommonJS打包工具(一)
  • 项目管理碎碎念系列之一:干系人管理
  • 责任链模式的两种实现
  • #QT(串口助手-界面)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (solr系列:一)使用tomcat部署solr服务
  • (二十三)Flask之高频面试点
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计ssm电影分享网站
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三)uboot源码分析
  • (数据结构)顺序表的定义
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)jQuery 基础
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转载)Linux网络编程入门
  • .form文件_一篇文章学会文件上传
  • .NET BackgroundWorker
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET开发不可不知、不可不用的辅助类(一)
  • .py文件应该怎样打开?
  • .考试倒计时43天!来提分啦!
  • @Import注解详解
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • @vue/cli脚手架