MySQL慢查询日志分析(慢查询日志)

news2025/5/23 5:40:26

一、背景

      MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应的时间超过阈值的语句,具体指运行时间超过long_query_time(默认是10秒)值的SQL,会被记录到慢查询日志中。
  慢查询日志一般用于性能分析时开启,收集慢SQL然后通过explain进行全面分析,一般来说,生产是不会开启的,收集慢查询语句是十分耗性能的,但是我们在测试环境是可以模拟分析的,优化SQL语句,接下来就通过实战,讲解如何开启慢日志查询以及如何分析。

查看慢查询日志是否开启

show variables like 'slow%';

在这里插入图片描述

可以看到默认慢日志的保存文件以及状态 ,OFF说明没有开启

查看默认慢查询sql默认时间,大于10秒,没有等于

select @@global.long_query_time;
-- 或者
show VARIABLES like 'long_query_time%'

在这里插入图片描述

二、慢查询日志开启

方式打开(重启后失效)

-- 开启慢日志
set @@global.slow_query_log=1;
-- 设置sql查询超时时间
set @@global.long_query_time=2;
-- 或者
-- 开启慢日志
set GLOBAL slow_query_log=1;
-- 设置sql查询超时时间
set GLOBAL long_query_time=2;

配置文件方式打开(永久), 重启有效

linux :vi /etc/my.cnf

windows:
在这里插入图片描述
在这里插入图片描述

[mysqld]
slow_query_log=1
long_query_time=2

客户端模拟,查询超时,睡眠4秒,由于我们上面设置了查询超过2s保存慢日志

select sleep(4);

只要是超过long_query_time的sql都会被记录
在这里插入图片描述
查看当前数据有多少条慢sql

show GLOBAL  STATUS like '%slow_queries%'

慢日志分析工具:mysqldumpslow,这个大家有兴趣的可以去详细了解如何使用。

指定日志文件,查看记录集中最多的sql
linux

mysqldumpslow -s r -t 10 /var/lib/mysql/dca928abb464-slow.log

windows

先下载mysqldumpslow.pl文件

再下载运行工具Perl

之后可以使用cmd根据perl工具调用mysqldumpslow.pl中的命令运行mysqldumpslow

运行格式:

perl mysqldumpslow.pl文件路径 mysqldumpslow命令 慢日志文件路径

例如:

D:\environment>perl D:\mysql\bin\mysqldumpslow.pl mysqldumpslow --help
使用方法:mysqldumpslow [ 选项... ] [ 日志文件... ]

解析并总结 MySQL 慢查询日志。可用的选项有:

  --verbose    详细模式
  --debug      调试模式
  --help       输出此文本到标准输出

  -v           详细模式
  -d           调试模式
  -s ORDER     排序方式(al, at, ar, c, l, r, t),默认为 'at'
                al: 平均锁定时间
                ar: 平均发送行数
                at: 平均查询时间
                 c: 查询计数
                 l: 锁定时间
                 r: 发送行数
                 t: 查询时间
  -r           反转排序顺序(从最大到最小,而非最小到最大)
  -t NUM       仅显示前 n 条查询
  -a           不将所有数字抽象为 N,字符串抽象为 'S'
  -n NUM       在名称中抽象至少具有 n 位数字的数字
  -g PATTERN   grep:仅考虑包含此字符串的语句
  -h HOSTNAME  数据库服务器的主机名,用于匹配 *-slow.log 文件名(可以使用通配符),默认为 '*',即匹配所有
  -i NAME      服务器实例名称(如果使用 mysql.server 启动脚本)
  -l           不从总时间中减去锁定时间

mysqldumpslow命令使用例子:
得到返回记录集最多的10个SQL

mysqldumpslow -s r -t 10 var/lib/mysql/zhubayi-computer-slow.log

得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /var/lib/mysql/zhubayi-computer-slow.log

得到按照时间排序的前10条里面含有左连接的查询语句

mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/zhubayi-computer-slow.log

另外建议在使用这些命令时结合|和more 使用 ,否则有可能出现爆屏情况

mysqldumpslow -s r -t 10 var/lib/mysql/zhubayi-computer-slow.log.log  more

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1356150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CAAC无人机操作证考证报名流程及白底证件照片制作方法

在这个无人机技术日新月异的时代,拥有一张CAAC民用无人机操作证不仅意味着你能够合法地在天空翱翔,也象征着你对飞行技术的尊重和对规章制度的遵守。如果你怀揣着成为无人机飞行员的梦想,那么,让我们一起揭开CAAC民用无人机操作证…

Docker安装Elasticsearch,kibana,ik分词器

安装elasticsearch 下载elasticsearch,查看版本:Elasticsearch Guide [8.11] | Elastic docker pull elasticsearch:7.17.16 查看镜像是否下载成功 docker images 创建网络,因为需要部署kibana容器,要让es和kibana容器互联 …

由浅入深理解C#中的事件

目录 本文较长,给大家提供了目录,可以直接看自己感兴趣的部分。 前言有关事件的概念示例​ 简单示例​ 标准 .NET 事件模式​ 使用泛型版本的标准 .NET 事件模式​ 补充总结 参考前言 前面介绍了C#中的委托,事件的很多部分都与委托…

MySQL——事物

目录 一.发现问题 二.什么时事物 三.事务提交方式 四.事物的常规操作方式 五. 事务隔离级别 1.如何理解隔离性 2.隔离级别 3.查看与设置隔离性 4.读未提交【Read Uncommitted】 5.读提交【Read Committed】 6.可重复读【Repeatable Read】 7.串行化【serializabl…

A01、class文件简要说明

关于 .class 文件的相关结构说明 1、字节码文件相关名词 类型名称数量u4magic1u2minor_version1u2major_version1u2constant_pool_count1cp_infoconstant_poolconstant_pool_count - 1u2access_flags1u2this_class1u2super_class1u2interfaces_count1u2interfacesinterfaces_c…

vue登录 滑动验证,记住密码及AES加密解密

相关依赖 npm install js-cookie //js-cookie npm install crypto-js //AES加密解密 npm install -S vue-puzzle-vcode //滑动验证 vue2 <template><div class"login"><div class"login-box"><div class"imgbox">&…

进阶学习——Linux系统——程序和进程

目录 一、程序和进程的关系 1.程序 2.进程 2.1线程 2.2协程 3.进程与线程的区别 4.总结 4.1延伸 5.进程使用内存的问题 5.1内存泄漏——Memory Leak 5.2内存溢出——Memory Overflow 5.3内存不足——OOM&#xff08;out of memory&#xff09; 5.4进程使用内存出现…

听GPT 讲Rust源代码--compiler(11)

File: rust/compiler/rustc_mir_transform/src/simplify.rs 在Rust源代码中&#xff0c;rust/compiler/rustc_mir_transform/src/simplify.rs文件是Rust编译器中一系列进行MIR&#xff08;中间表示&#xff09;简化的转换的实现。MIR是Rust编译器中用于进行优化和代码生成的中间…

PDF.js实现搜索多个不同的关键词高亮显示效果

static\PDF\web\viewer.js 392行左右 // 自定义搜索关键词---------------------------------------- this.searchKeywords keyword > {if (typeof PDFViewerApplication ! undefined) {PDFViewerApplication.eventBus.dispatch(find, {query: keyword,caseSensitive: fal…

HTML5+CSS3⑥——CSS三大特性、表格、列表

CSS特性 继承性 层叠性 优先级 叠加计算规则 表格 表格结构标签 合并单元格 列表 无序列表 有序列表 定义列表

「数据结构」八大排序1

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;初阶数据结构 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 文章目录 &#x1f349;插入排序&#x1f34c;直接插入排序&#x1f95d;复杂度及稳定性 &#x1f34c;希尔排序&#x1f95d;预…

Required request body is missing报错及解决

今天&#xff0c;我在尝试调用后端接口展示文章数据时遇到了错误&#xff0c;错误原因是请求体缺失&#xff0c; 但是我明明传了参数 然后我找了很久错误原因&#xff0c;发现在之前跟着写的一个差不多的功能时&#xff0c;请求方式是post 而我写的确是get 将get改为post后&…

【DevOps-06】Jenkins实现CI/CD操作

一、简要说明 基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成 基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署 二、准备Springboot工程 1、IDEA新建工程 2、填写项目工程信息 3、选择Springboot版本…

【MATLAB】EEMD_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 EEMD-LSTM神经网络时序预测算法是一种结合了扩展经验模态分解&#xff08;EEMD&#xff09;和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序列预测方法。 EEMD是一种改进的EM…

Numpy基础

目录&#xff1a; 一、简介:二、array数组ndarray&#xff1a;1.array( )创建数组&#xff1a;2.数组赋值和引用的区别&#xff1a;3.arange( )创建区间数组&#xff1a;4.linspace( )创建等差数列&#xff1a;5.logspace( )创建等比数列&#xff1a;6.zeros( )创建全0数组&…

云消息队列 Kafka 版生态谈第一期:无代码转储能力介绍

作者&#xff1a;娜米 云消息队列 Kafka 版为什么需要做无代码转储 云消息队列 Kafka 版本身是一个分布式流处理平台&#xff0c;具有高吞吐量、低延迟和可扩展性等特性。它被广泛应用于实时数据处理和流式数据传输的场景。然而&#xff0c;为了将云消息队列 Kafka 版与其他数…

C++第四天

定义一个Person类&#xff0c;私有成员int age&#xff0c;string &name&#xff0c;定义一个Stu类&#xff0c;包含私有成员double *score&#xff0c;写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数&#xff0c;完成对Person的运算符重载(算术运算符、条件运算…

使用Redis进行搜索

文章目录 构建反向索引 构建反向索引 在Begin-End区域编写 tokenize(content) 函数&#xff0c;实现文本标记化的功能&#xff0c;具体参数与要求如下&#xff1a; 方法参数 content 为待标记化的文本&#xff1b; 文本标记的实现&#xff1a;使用正则表达式提取全小写化后的…

特斯拉被比亚迪拉下神坛,马斯克难改命运岁月不如人

当这个消息浮现在我面前时&#xff0c;我几乎不敢相信眼前所见。比亚迪这个我曾无数次在文章中提及的中国车企&#xff0c;终于在2023年完成了伟大的历史任务——以销量突破特斯拉&#xff0c;站上全球电动车王座的宝座&#xff01; 过去我们都习惯于从欧美日韩那里听说汽车的成…

Go 编程必备:bufio 库的全面指南与实战技巧

Go 编程必备&#xff1a;bufio 库的全面指南与实战技巧 引言bufio 库概览bufio.Readerbufio.Writerbufio.Scanner 深入 bufio.Readerbufio.Reader 的基本使用高级功能应用场景 探索 bufio.Writerbufio.Writer 的基本使用高级功能应用场景 运用 bufio.Scannerbufio.Scanner 的基…