医生给病人诊断的时候,一般会使用听诊器来诊断肺部是否正常。如果你的MySQL出现了性能问题,第一个需要“诊断”的就是slow log(慢日志)了。

slow log文件很小,使用more less等命令就足够了。如果slow log很大怎么办?这里介绍MySQL自带的工具mysqldumpslow来帮你解析慢日志(也可以跳过本文,直接阅读Manual)。

基本使用

$mysqldumpslow slow.log > slow.dat

$more slow.dat

输出的数据:

Count: 3 Time=62.67s (188s) Lock=0.00s (0s) Rows=1623770.7 (4871312), root[root]@localhost

SELECT /*!N SQL_NO_CACHE */ * FROM `feed_receive_0287`

这里我们能够获得:这条语句在满日志中的出现次数、平均执行时间、总共执行时间、row send等。例如:SELECT /*!N SQL_NO_CACHE */ * FROM `feed_receive_0287`一共执行了3次,平均每次使用62秒。

在默认情况下,mysqlslowdump的输出结果会使用N和S代替SQL中出现的数字和字符串。例如:如下慢日志

SELECT COUNT(*) as counter FROM feed_receive f WHERE f.RATED_UID=21621 AND f.suspended=-1 AND f.rater_type=4 AND f.rate=-2 AND f.username=”orczhou.com”

会被mysqlslowdump抽象为:

SELECT COUNT(*) as counter FROM feed_receive f WHERE f.RATED_UID=N AND f.suspended=-N AND f.rater_type=N AND f.rate=-N AND f.username=”S”

如果想禁用这种抽象,可以使用-a参数

排序参数

mysqlslowdump默认输出结果是按照count(SQL出现的次数)排序的。可以通过如下的参数控制:

-s t

按总query time排序

-s at

按平均query time排序

-s l

按总locktime排序

-s al

按平均lock time排序

-s s

按总row send排序

-s as

按平均row send排序

-s c

按count排序

例如:

mysqldumpslow -s at slow.log.old > slow.2.dat #按照平均query time排序查看日志

其他参数

-r

倒着排序

-a

不要将数字和字符串抽象成N和S

-g

仅仅分析相匹配的query

常用命令

由上面的常用参数就可以组合出如下的常用命令:

mysqldumpslow -s t slow.log.old > slow.1.dat #按照query time排序查看日志

mysqldumpslow -s at slow.log.old > slow.2.dat #按照平均query time排序查看日志

mysqldumpslow -a -s at slow.log.old > slow.3.dat #按照平均query time排序并且不抽象数字的方式排序

mysqldumpslow -a -s c slow.log.old > slow.4.dat #安装执行次数排序

(全文完)

mysql f_MySQL相关推荐

  1. mysql uroot p f_Mysql 5.7安装

    Mysql 安装操作系统配置 1.调整内核参数 编辑/etc/sysctl.conf文件,添加如下内容,并执行sysctl -p 使配置生效: #增加tcp支持的队列数 ##指定能接受SYN同步包的最 ...

  2. mysql中rm+-f_Mysql命令大全

    格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你 ...

  3. mysql if value t f_mysql常用函数

    函数介绍 事先提供好的一些功能可以直接使用 函数可以用在SELECT语句及其子句 也可以用在UPDATE,DELETE语句当中. 函数分类 字符串函数 数值函数 日期和时间函数 流程函数 其它函数 字 ...

  4. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  5. mysql并发更新数据,多用户并发修改数据解决方案。

    mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...

  6. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  7. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  8. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  9. docker一步安装mysql,docker的魅力就在于此

    正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...

最新文章

  1. 量化网络训练--Towards Effective Low-bitwidth Convolutional Neural Networks
  2. Android渗透测试Android渗透测试入门教程大学霸
  3. sql能查到数据 dataset对象里面没有值_新零售数据分析报告
  4. 【Java面试题视频讲解】合并相同索引的值
  5. jre环境变量配置_详解java环境变量意思-用于解决环境搭建问题
  6. [html] 如何禁止手机端页面缩放?
  7. 卡巴斯基安全浏览器_卡巴斯基杀毒软件被曝出用户上网痕迹泄露漏洞
  8. python构建简单神经网络_Python构建一个简单的神经网络,Pytorch,搭建
  9. paip.验证码识别---除噪算法-中值滤波
  10. 如何在物联网低代码平台中使用数据字典功能?
  11. wps带阴影的边框怎么设置_wps如何添加阴影边框-wps设置阴影边框的方法 - 河东软件园...
  12. 实验三——Pspice
  13. php 网页qq一键登录,给网站添加一键qq登录的功能
  14. 随手练——小米OJ 高弗雷勋爵
  15. 数字化时代,如何做好用户体验与应用性能管理
  16. 4 个方法养成大神级 “反内耗“ 体质
  17. 谁抢走你的棒棒糖?精彩的创意让你得到的不仅仅是震撼 值得一看(图)
  18. 机器学习入门的书单(数据挖掘、模式识别等一样)
  19. 3.18 使用橡皮擦工具制作图像合成效果 [原创Ps教程]
  20. 给穷鬼创业者的话:没有千万甚至上亿还是别做App,你那几十万还不如炒房

热门文章

  1. java文章上一篇下一篇_每个人都必须阅读的10篇Java文章
  2. 使用OpenJDK 11运行JAXB xjc编译器
  3. java pojo使用_在POJO中使用ThreadLocal进行Java嵌套事务
  4. jboss5.1安全性配置_使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全
  5. 在Jersey测试中模拟SecurityContext
  6. 线程同步,线程不同步_同步多线程集成测试
  7. JSON处理1.1:100DaysOfJavaEE8
  8. 实时通信:使用Spring Boot实现Websocket
  9. 使用一些可选的将字符串配置属性转换为其他类型
  10. jboss-5.1.0_JBoss AS 7.1.0.Final“ Thunder”发布-Java EE 6 Full Profile认证!