前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mysql慢日志查询

Mysql慢日志查询

作者头像
大忽悠爱学习
发布于 2021-11-15 07:37:44
发布于 2021-11-15 07:37:44
1.3K00
代码可运行
举报
文章被收录于专栏:c++与qt学习c++与qt学习
运行总次数:0
代码可运行

Mysql慢日志查询


简介

  • MySQL慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中
  • long_query_time的默认值为10,意思是运行10秒以上的语句

默认情况下,MYSQL数据库没有开启慢查询日志,需要我们手动来设置这个参数

当前,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会对性能造成一定的影响,慢查询日志支持将日志记录到文件中


查看是否开启及如何开启

查看是否开启:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like '%slow_query_log%';

默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的

可以通过设置slow_query_log的值来开启

使用set global slow_query_log=1开启慢查询日志只对当前数据库生效

如果重启MYSQL,则会失效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set global slow_query_log=1

设置永久开启

修改配置文件my.cnf

在[mysqld]下增加或修改参数

slow_query_log和slow_query_log后,然后重启MYSQL服务器,将下面两行配置进my.cnf配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
slow_query_log=1
slow_query_log_file=/var/lib/mysql/dhy.log

关于慢查询的参数slow_query_log,它指定慢查询日志文件的存放路径,系统默认会给一个缺省的文件host_name-slow.log(如果没有指定参数slow_query_log_file的话)


修改和查看默认的最长查询时间参数

默认情况下long_query_time的值为10秒,表示超过10秒的sql被定义为慢sql,会被记录

查看最长查询时间参数的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like 'long_query_time%';

也可以使用命令修改,也可以在my.cnf参数里面修改

如果运行时间恰好等于long_query_time,则不会被记录下来,也就是说mysql源码是判断大于long_query_time而不是大于等于


设置最长查询时间的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set global long_query_time=3

修改后需要重写连接或新开一个会话才能看到修改值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like 'long_query_time%';

或者使用下面的命令查看:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show global variables like 'long_query_time%';

select sleep(4):当前查询执行四秒


查询当前系统中有多少条慢查询记录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show global status like '%Slow_queryies%';

日志分析工具mysqldumpslow

显示帮助信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqldumpslow --help

mysqldumpslow的帮助信息:

s:表示按照何种方式排序 c:访问次数 l:锁定时间 r:返回记录 t:查询时间 al:平均锁定时间 ar:平均返回记录数 at:平均查询时间 t:即为返回前面多少条数据 g:后边搭配一个正则匹配模式,大小写不敏感

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
得到返回记录集最多的10个sql
mysqldumpslow -s -r -t 10 /var/lib/mysql/dhy.log
得到访问次数最多的10个sql
mysqldumpslow -s -c -t 10 /var/lib/mysql/dhy.log
得到按照时间排序的前10条里面含有左连接的查询语句
mysqldumpslow -s -t -t 10 -g 'left join' /var/lib/mysql/dhy.log
建立在使用这些命令时,结合|more来使用,否则可能会爆屏
mysqldumpslow -s -c -t 10 /var/lib/mysql/dhy.log | more

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
美团面试题:慢SQL有遇到过吗?是怎么解决的?
大家好,我是田维常,可以叫我老田,也可以叫我田哥。2017年的时候,我刚去上海,朋友内推我去美团面试,之前我也写过一个一篇文章,也是在美团面试中遇到的:
田维常
2021/08/06
7320
听说你还不会看MySQL慢查询日志?
MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。
Bug开发工程师
2018/12/17
5030
简单介绍 MySQL 四类日志
在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事件。MySQL 也不例外,在 MySQL 中,有 4 种不同的日志,分别是错误日志、二进制日志(BINLOG 日志)、查询日志和慢查询日志,这些日志记录着数据库在不同方面的踪迹。
星哥玩云
2022/07/16
1.2K0
MySQL慢查询日志分析详解[通俗易懂]
分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。
全栈程序员站长
2022/11/08
1.5K0
【赵渝强老师】MySQL的慢查询日志
MySQL的慢查询日志可以把超过参数long_query_time时间的所有SQL语句记录进来,帮助DBA人员优化所有有问题的SQL语句。通过mysqldumpslow工具可以查看慢查询日志。
赵渝强老师
2024/11/20
850
【赵渝强老师】MySQL的慢查询日志
MySQL慢查日志
监控系统监控到我们的程序变慢了,怀疑是sql的原因,要怎么去分析排查呢?一般按照如下几个步骤进行:
贪挽懒月
2021/06/02
1.2K0
MySQL慢查日志
MySQL 8.0慢查询日志实验
long_query_time 默认为 10s。生产环境下,如果 SQL 的执行时间超过 1s,我们可以认为这条 SQL是比较慢,我们将long_query_time的值改为 2s
程裕强
2021/11/17
1.6K0
MySQL 8.0慢查询日志实验
快速学会慢查询SQL排查
学完数据库基础知识,要想更深入地了解数据库,就需要学习数据库进阶知识,今天我们就先来聊一聊慢SQL查询那些事儿。
测试蔡坨坨
2022/12/21
8370
快速学会慢查询SQL排查
Mysql慢查询配置
查看系统慢sql是否开启 //慢查询时间阈值 > show variables like '%long_query_time%'; //查看慢查询配置情况 > show status like '%slow_queries%'; // 查看慢日志路径 > show variables like '%slow%'; 开启慢日志 > set global slow_query_log=On; > set global long_query_time=1; //设置查看时间超过1秒的查询被记录到日志 > s
入门笔记
2022/06/02
3680
慢SQL,压垮团队的最后一根稻草!
我们都知道,我们每执行一次 SQL,数据库除了会返回执行结果以外,还会返回 SQL 执行耗时,以 MySQL 数据库为例,当我们开启了慢 SQL 监控开关后,默认配置下,当 SQL 的执行时长大于 10 秒,会被记录到慢 SQL 的日志文件中。
Java极客技术
2022/12/04
1K0
慢SQL,压垮团队的最后一根稻草!
图文结合带你搞懂MySQL日志之Slow Query Log(慢查询日志)
MySQL 的慢查询日志,用来记录在 MySQL 中响应时间超过阀值的语句,具体指运行时间超过 long_query_time 值的SQL,则会被记录到慢查询日志中。long_query_time 的默认值为10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。
GreatSQL社区
2023/02/22
3.9K0
MySQL数据库或日志中时间差8个小时的解决方式及慢查询配置
果您需要在全局范围内修改默认时区,需要在MySQL的配置文件my.cnf中添加以下行:
码客说
2023/09/26
2.3K0
MySQL数据库或日志中时间差8个小时的解决方式及慢查询配置
Mysql慢查询操作梳理
Mysql慢查询解释 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入
洗尽了浮华
2018/01/23
1.5K0
你的哪些SQL慢?看看MySQL慢查询日志吧
在项目里面,多多少少都隐藏着一些执行比较慢的SQL, 不同的开发测试人员在平时使用的过程中多多少少都能够遇到,但是无法立马有时间去排查解决。那么如果有一个文件能够将这些使用过程中比较慢的SQL记录下来,定期去分析排查,那该多美好啊。这种情况MySQL也替我们想到了,它提供了SQL慢查询的日志,本文就分享下如何使用吧。
闻说社
2023/02/22
6770
常见优化方法及慢查询
select ...from table where exist (子查询);
meihuasheng
2021/03/16
5440
如何开启MySQL慢查询日志
摘要: 前言 数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值(long_query_time,单位:秒)的SQL语句。
全栈程序员站长
2022/11/07
1.4K0
开启 MySQL 慢查询日志
可以看到默认慢查询是没有打开的,即OFF,而且日志文件也有一个默认的,并且慢查询定义的时间为10秒。
全栈程序员站长
2022/11/07
1.1K0
mysql 慢查询,你操作的对吗?
MySQL 慢查询,全称 慢查询日志 ,它是 MySQL 提供的一种日志记录,用了记录在 MySQL 中响应时间超过阈值的语句。
八点半的Bruce、D
2020/06/09
7740
MySQL-获取有性能问题SQL的方法_慢查询 & 实时获取
http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html
小小工匠
2021/08/17
6790
Mysql慢查询_mysql并发查询慢
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
全栈程序员站长
2022/11/07
19.3K0
Mysql慢查询_mysql并发查询慢
相关推荐
美团面试题:慢SQL有遇到过吗?是怎么解决的?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验