iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 慢查询日志深入理解
  • 740
分享到

MySQL 慢查询日志深入理解

MySQL慢查询日志MySQL日志MySQL慢查询 2022-05-15 09:05:30 740人浏览 薄情痞子
摘要

什么是慢查询日志 Mysql的慢查询日志是 mysql提供的一种日志记录,它用来记录在 Mysql 中响应时间超过阀值的语句,具体指运行时间超过long_query_time 值的 SQL,则会被记录到慢查询日志中

什么是慢查询日志

Mysql的慢查询日志是 mysql提供的一种日志记录,它用来记录在 Mysql 中响应时间超过阀值的语句,具体指运行时间超过long_query_time 值的 SQL,则会被记录到慢查询日志中

具体指运行时间超过 long_query_time 值的 SQL,则会被记录到慢查询日志中。long_query_time 的默认值为 10, 意思是运行 10 秒以上的语句

由它来查看哪些 SQL 超出了我们的最大忍耐时间值,比如一条SQL执行超过 5 秒钟,我们就算慢 SQL,希望能收集超过 5 秒的SQL,结合之前explain进行全面分析

默认情况下,MySQL 数据库没有开启慢?搜?罩荆?枰?颐鞘侄?瓷柚谜飧霾问?5比唬?绻?皇堑饔判枰?幕埃?话悴唤ㄒ槠舳?貌问??蛭??袈?檠?罩净峄蚨嗷蛏俅?匆欢ǖ男阅苡跋臁B?搜?罩局С纸?罩炯锹夹慈胛募??/p>

如何开启慢查询

查看开启状态


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 使用,否则有可能出现爆屏情?r


mysqldumpslow -s r -t 10 /var/lib/mysq/tim-slow.log | more

以上就是MySQL 慢查询日志深入理解的详细内容,更多关于MySQL 慢查询日志的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 慢查询日志深入理解

本文链接: https://www.lsjlt.com/news/10286.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入了解MySQL中的慢查询日志
    目录慢查询日志开启慢查询查看慢查询日志删除慢查询日志关闭慢查询日志慢查询日志 慢查询日志主要用来记录执行时间超过设置的某个时长的SQL语句,能够帮助数据库维护人员找出执行时间比较长、执行效率比较低的SQL语句,并对这些S...
    99+
    2023-03-19
    MySQL慢查询语句 MySQL慢查询优化
  • 深入讲解MongoDB的慢日志查询(profile)
    前言 说到MongoDB的慢日志分析,就不得不提到profile分析器,profile分析器将记录的慢日志写到system.profile集合下,这个集合是一个固定集合。我们可以通过对这个集合的查询,来了解...
    99+
    2024-04-02
  • MySQL慢查询日志
    笔记内容:MySQL慢查询日志 笔记日期:2017-12-10 <br> MySQL日志文件系统的组成 通用查询日志 慢查询日志 和大多数关系型数据库一样,日志文件是MySQL数据库的重要...
    99+
    2024-04-02
  • 性能分析之MySQL慢查询日志分析(慢查询日志)
    一、背景            MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应的时间超过阈值的语句,具体指运行时间超过long_query_time(默认是10秒)值的SQL,会被记录到慢查询日志中。  ...
    99+
    2023-10-20
    mysql 数据库 慢日志分析 性能优化 慢查询日志
  • MySQL自带慢日志排查慢查询SQL
    目录1、查询有关query的相关变量:2、开启慢查询日志3. 设置慢查询阈值4.查看慢查询日志其他方式定位慢SQL 总结根据mysql自带慢日志功能定位慢SQL 1、查询有关query的相关变量: show g...
    99+
    2022-12-15
    mysql如何优化慢查询 mysql排查慢查询sql sql语句慢查询
  • Mysql慢查询日志的过程
    这篇文章主要介绍“Mysql慢查询日志的过程”,在日常操作中,相信很多人在Mysql慢查询日志的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql慢查询日志的过程”...
    99+
    2024-04-02
  • mysql慢查询日志是什么
    这篇文章将为大家详细讲解有关mysql慢查询日志是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。定义:mysql提供的一种记录日志的功能,用来记录mysql相应时间超...
    99+
    2024-04-02
  • Redis慢查询日志及慢查询分析详解
    目录前提介绍单线程命令的处理机制本章内容什么是慢查询慢查询日志Redis慢查询日志Redis慢查询的危害Redis客户端执行一条命令的步骤慢查询引发的问题阈值和慢查询的日志的设置阈值...
    99+
    2023-01-28
    Redis慢查询日志分析 Redis慢查询
  • mysql的慢查询日志如何查看
    要查看MySQL的慢查询日志,您可以按照以下步骤操作: 登录MySQL数据库服务器,可以通过命令行或者图形化工具进行登录。 ...
    99+
    2024-05-14
    mysql
  • MYSQL慢查询日志的查看方式
    这篇文章主要介绍“MYSQL慢查询日志的查看方式”,在日常操作中,相信很多人在MYSQL慢查询日志的查看方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL慢查询日志...
    99+
    2024-04-02
  • Mysql通用查询日志和慢查询日志的示例分析
    小编给大家分享一下Mysql通用查询日志和慢查询日志的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL中的日志包...
    99+
    2024-04-02
  • MySQL慢查询日志举例分析
    这篇文章主要介绍“MySQL慢查询日志举例分析”,在日常操作中,相信很多人在MySQL慢查询日志举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL慢查询日志举例...
    99+
    2024-04-02
  • MySQL慢日志查询实例分析
    本篇内容介绍了“MySQL慢日志查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、慢查询日志概...
    99+
    2024-04-02
  • mysql查询慢日志怎么开启
    这篇文章主要介绍“mysql查询慢日志怎么开启”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql查询慢日志怎么开启”文章能帮助大家解决问题。 ...
    99+
    2023-05-25
    mysql
  • 如何在MySQL中慢查询日志
    如何在MySQL中慢查询日志?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是慢查询日志MySQL的慢查询日志是 MySQL提供的一种日志记录,它用来记录在 ...
    99+
    2023-06-14
  • MySQL如何开启慢查询日志
    这篇文章给大家分享的是有关MySQL如何开启慢查询日志的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等)开启慢查询日志:可以让MySQL记录下...
    99+
    2023-06-22
  • MySQL慢查询日志怎么设置
    这篇文章主要介绍了MySQL慢查询日志怎么设置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL慢查询日志怎么设置文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • MySQL慢查询日志怎么打开
    要打开MySQL的慢查询日志,需要在MySQL的配置文件中进行配置。步骤如下: 找到MySQL的配置文件my.cnf,一般位于/...
    99+
    2024-04-09
    MySQL
  • mysql怎么开启查看慢查询日志
    本篇内容主要讲解“mysql怎么开启查看慢查询日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql怎么开启查看慢查询日志”吧! ...
    99+
    2024-04-02
  • mysql的慢查询日志怎么关闭
    要关闭MySQL的慢查询日志,可以通过以下步骤: 登录到MySQL服务器的命令行界面或者使用MySQL客户端连接到MySQL服务...
    99+
    2024-05-14
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作