mysql查看慢查询(MySQL 慢查询日志深入理解)
mysql查看慢查询
MySQL 慢查询日志深入理解什么是慢查询日志
mysql的慢查询日志是 mysql提供的一种日志记录,它用来记录在 mysql 中响应时间超过阀值的语句,具体指运行时间超过long_query_time 值的 sql,则会被记录到慢查询日志中
具体指运行时间超过 long_query_time 值的 sql,则会被记录到慢查询日志中。long_query_time 的默认值为 10, 意思是运行 10 秒以上的语句
由它来查看哪些 sql 超出了我们的最大忍耐时间值,比如一条sql执行超过 5 秒钟,我们就算慢 sql,希望能收集超过 5 秒的sql,结合之前explain进行全面分析
默认情况下,mysql 数据库没有开启慢査询日志,需要我们手动来设置这个参数。当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢査询日志支持将日志记录写入文件!
如何开启慢查询
查看开启状态
|
show variables like '%slow_query_log%' |
开启慢查询
|
set global slow_query_log = 1 |
使用 set global_slow_query_log = 1 开启了慢查询日志只对当前数据库生,如果 mysql 重启后则会失效。
如果要永久生效,就必须修改配置文件 my.cnf(其它系统变量也是如此)修改 my.cnf 文件,[mysqld]下增加或修改参数
slow_query_log 和 slow_query_log_file 后,然后重启 mysql 服务器。也即将如下两行配置进my.cnf文件
|
slow_query_log =1 slow_query_log_file=/var/lib/mysql/tim-slow.log |
关于慢查询的参数 slow_query_log_fie,它指定慢查询日志文件的存放路径,系统默认会给一个缺省的文件host_name-slow.log(如果没有指定参数 slow_query_log_file的话)
那么开启慢查询日志后,什么样的sql参会记录到慢查询里面?
通过 show variables like ‘long_query_time%' 来查看默认时间长度,单位是秒:
同样的,可以使用命令修改,也可以在my.cnf里面配置。假如运行时间正好等于 long_query_time 的情况,并不会被记录下来。也就是说,在mysql源码里是判断大于 long_query_time,而非大于等于!
设置记录的阈值:
|
set global long_query_time=3; |
同样的,可以使用命令修改,也可以在my.cnf里面配置。假如运行时间正好等于 long_query_time 的情况,并不会被记录下来。也就是说,在mysql源码里是判断大于 long_query_time,而非大于等于!
设置记录的阈值:
|
set global long_query_time=3; |
设置了但是还是没有发生更改?为什么?此时需要重新开启一个会话才可以:
接下来实行一个较慢的查询,如下图,但是记得要在配置文件中做如下配置:
接着去日志文件中查看存在哪些超过阈值的sql就好了:
查询当前系统中有多少条慢查询记录:
记载一下我的配置文件
|
slow_query_log=1; slow_query_log_file=/var/lib/mysql/tim-slow.log; long_query_time=3; log_output=file |
日志分析工具mysqldumpshow
在生产环境中,如果要手工分析日志,查找、分析 sql,显然是个体力活,mysql 提供了日志分析工具mysqldumpshow
- s:是表示按何种方式排序
- c:访问次数
- l:锁定时间
- r:返回记录
- t:查询时间
- al:平均锁定时间
- ar:平均返回记录数
- at:平均查询时间
- t:即为返回前面多少条的数据
- g:后边搭配一个正则匹配模式,大小写不敏感的
下面是使用示例:
得到返回记录集最多的 10 个 sql
|
mysqldumpslow -s r -t 10 /var/lib/mysql/tim-slowlog |
得到访问次数最多的 10 个 sql
|
mysqldumpslow -s c-t 10 /var/lib/mysql/tim-slow log |
得到按照时间排序的前 10 条里面含有左连接的查询语句
|
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/tim-slowlog |
另外建议在使用这些命令时结合和 more 使用,否则有可能出现爆屏情況
|
mysqldumpslow -s r -t 10 /var/lib/mysq/tim-slow.log | more |
以上就是mysql 慢查询日志深入理解的详细内容,更多关于mysql 慢查询日志的资料请关注开心学习网其它相关文章!
原文链接:https://juejin.cn/post/6953551889686331423
- mysql主从复制如何解决延迟(MySQL 8.0.23中复制架构从节点自动故障转移的问题)
- mysql8.0.23.0官方安装手册(MySQL8.0.23安装超详细教程)
- windows 安装解压版 mysql5.7.28 winx64的详细教程(windows 安装解压版 mysql5.7.28 winx64的详细教程)
- mysql语句性能分析(聊聊MySQL的COUNT*的性能)
- 查看mysql执行计划关键字(带你学习MySQL执行计划)
- mysql索引的比较规则(MySQL的Flush-List和脏页的落盘机制)
- mysql常用数据模型(MySQL数据库基于sysbench实现OLTP基准测试)
- mysql关联查询详解(详解mysql 组合查询)
- docker部署mysql多实例(Docker部署mysql一主一从的操作方法)
- mysql从入门到实践万字详解(mysql基础知识扫盲)
- mysql判断表中字段是否存在(mysql插入前判断数据是否存在的操作)
- navicat15激活页面不显示(Navicat for MySQL 15注册激活详细教程)
- win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法(win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法)
- mysql数据表实例教程(mysql数据库入门第一步之创建表)
- mysql索引原理及使用(再有人问你MySQL索引原理,就把这篇文章甩给他!)
- mysql实验总结分析(MySQL查询截取的深入分析)
- 前《iLOOK》时装总监 《快乐大本营》御用造型师上线(快乐大本营御用造型师上线)
- 释小龙晒杀青照片 多重身份惹观众期待(释小龙晒杀青照片)
- 《九牛之人降魔传》开机 演员祁高坤化身九牛之人除魔卫道(九牛之人降魔传开机)
- 王铲铲的致富之路无限金币卡法攻略教学(王铲铲的致富之路无限金币卡法攻略教学)
- 文明6金币太少怎么办 文明6无限刷钱教程(文明6金币太少怎么办)
- 开国中将,王牌军63军首任政委,两个连襟一个上将一个少将传为佳话(王牌军63军首任政委)
热门推荐
- jpg、png、gif图片格式的介绍
- vue移动端图片放大效果实现(vue实现图片切换效果)
- laravel队列失败原理(Laravel第三方包报class not found的解决方法)
- sql server2008无法连接怎么办(SQL Server 2008 R2登录失败的解决方法)
- js 图片编辑处理库(javascript input图片上传及预览,FileReader预览图片)
- docker打包镜像命令(docker 打包本地镜像,并到其他机器进行恢复操作)
- eval在python里面什么意思(python 为什么说eval要慎用)
- mysql乐观锁与mvcc(MySQL中的乐观锁,悲观锁和MVCC全面解析)
- docker node 分阶段构建(Docker安装、创建镜像、加载并运行NodeJS程序的详细过程)
- phpstudy数据库搭建教程交流(phpStudy V8如何修改数据库root密码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9