博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 开启慢查询及其用mysqldumpslow做日志分析
阅读量:5918 次
发布时间:2019-06-19

本文共 1239 字,大约阅读时间需要 4 分钟。

mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过阈值的语句,就是指运行时间超过long_query_time值的sql,会被记录在慢查询日志中。long_query_time的默认值是10,意思是运行10S之上的语句。

慢查询日志的设置

1 、查看是否开启慢查询日志命令:

show variables like '%slow_query_log%'

2、设置慢查询开启的命令

set global slow_query_log=on

注:

slow_query_log ON为开启,OFF为关闭
slow_query_log_file 为慢查询日志的存放地址

3、查询并修改慢查询定义的时间

show variables like 'long_query_time%'

set global long_query_time=4

4、未使用索引的查询被记录到慢查询日志中。如果调优的话,建议开启这个选项。如果开启了这个参数,full index scan的sql也会被记录到慢查询日志中。

show variables like 'log_queries_not_using_indexes'

set global log_queries_not_using_indexes=1

5、查询有多少条慢查询记录

show global status like '%Slow_queries%';

mysqldumpslow 慢日志分析工具

命令:

-s 按照那种方式排序

c:访问计数
l:锁定时间
r:返回记录
al:平均锁定时间
ar:平均访问记录数
at:平均查询时间
-t 是top n的意思,返回多少条数据。
-g 可以跟上正则匹配模式,大小写不敏感。

得到返回记录最多的20个sql

mysqldumpslow -s r -t 20 sqlslow.log

得到平均访问次数最多的20条sql

mysqldumpslow -s ar -t 20 sqlslow.log

得到平均访问次数最多,并且里面含有ttt字符的20条sql

mysqldumpslow -s ar -t 20 -g "ttt" sqldlow.log

注意:

1、出现 -bash: mysqldumpslow: command not found 错误
解决方法:

PATH=$PATH:/usr/local/mysql/bin/mysqldumpslow

2、如果出现如下错误,Died at /usr/bin/mysqldumpslow line 161, <> chunk 405659.说明你要分析的sql日志太大了,

解决方法:拆分后再分析

拆分的命令为:

tail -1000 mysql-slow.log>mysql-slow.20180725.log

转载于:https://blog.51cto.com/14101466/2325243

你可能感兴趣的文章
Python3 OS 文件/目录方法 — 图 表 概 览
查看>>
RPC (远程过程调用)
查看>>
序列类型之元组14
查看>>
使用cocos3.0创建项目总结
查看>>
我的友情链接
查看>>
MySQL基础(2)
查看>>
fedora16 准备工作更新中。
查看>>
Spark算子:RDD键值转换操作(5)–leftOuterJoin、rightOuterJoin、subtractByKey
查看>>
我的友情链接
查看>>
微信获取access_token
查看>>
[置顶] 兼容解决 IE 、火狐、谷歌浏览器中 Iframe框架的页面缓存的方法...
查看>>
NSArray NSMutableArray的简单使用
查看>>
使用CSS如何实现文字竖排
查看>>
总结js创建object的方式(对象)
查看>>
数据中各个层之间的关系及其实力
查看>>
hibernate load get方法区别
查看>>
iOS平台内存常见问题(转)
查看>>
用js实现的动画效果
查看>>
本人小白,Java学习网站汇总【备忘】
查看>>
Javascript 事件的捕获,冒泡和目标阶段的回调函数执行顺序
查看>>