Mysql 慢日志处理

news2025/2/26 23:02:14

勿以恶小而为之,勿以善小而不为---- 刘备

有时候我们需要排查执行缓慢的SQL语句,这就用到了mysql慢查询日志。

开启慢查询日志的方式有两种:临时开启和永久开启。

开启慢查询日志功能可能需要mysql的版本达到5.7

查看版本号

select VERSION();

image.png

慢 SQL 开启前查询

看一下当前mysql数据库是否开启了慢查询

show variables like 'slow_query%';

image.png

查询 慢 SQL 的阈值 , 默认是 秒数。

show variables like 'long_query%';

image.png

  1. slow_query_log 慢查询开启状态,ON开启,OFF关闭

  2. slow_query_log_file 慢查询日志存放的位置
    (这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)

  3. long_query_time 查询超过多少秒才记录(才算是慢查询)

开启 慢 SQL

myql 在 linux 服务器默认的安装路径是: /var/lib/mysql

临时开启

set global slow_query_log_file='/var/lib/mysql/tmp_slow.log';
set global long_query_time=0.5;

set global log_output='FILE,TABLE';  //默认是FILE。如果也有TABLE,则同时输出到mysql库的slow_log表中。
set global slow_query_log='ON';

long_query_time设置后需要打开一个新的查询窗口(会话)才能看到新设置的值。
老的查询窗口还是显示之前的值,其实已经改了

永久开启

修改配置文件my.cnf,在[mysqld]下的下方加入

[mysqld]
slow_query_log = ON
# linux    
slow_query_log_file = /var/lib/mysql/tmp_slow.log     
long_query_time = 0.5

image.png

保存后,重启服务器

systemctl restart mysqld

慢日志分析

使用 mysqldumpslow 命令

mysqldumpslow能将相同的慢SQL归类,并统计出相同的SQL执行的次数,每次执行耗时多久、总耗时,每次返回的行数、总行数,以及客户端连接信息等.

mysqldumpslow语法说明:
-s ,按照什么方式起来排序。默认at,也就是按照平均查询时间来排序。都是按照倒序排列。
al: average lock time 平均锁定时间
ar: average rows sent 平均返回行数
at: average query time 平均查询时间
c: count 总执行次数
l: lock time 总锁定时间
r: rows sent 总返回行数
t: query time 总查询时间
-t ,show the top n queries,显示前多少名的记录
-a ,默认不开启这个选项。mysqldumpslow将相似的SQL的值(字符串或者数字)替换为N,开启该选项,则显示真实值。不开启该选项,有点类似于Oracle的绑定变量的记录。
-g ,类似于grep命令,过滤出需要的信息。如,只查询A表的慢查询记录。
-l ,总时间中包含锁定时间

image.png

按照查询时间进行展示

mysqldumpslow -s t slow.log

查询出前五条的记录

mysqldumpslow -t 10 -s t slow.log

image.png

[root@VM-0-2-centos lib]# mysqldumpslow -t 1 -s t slow.log

Reading mysql slow query log from slow.log
Count: 14585  Time=0.66s (9696s)  Lock=0.00s (1s)  Rows=0.0 (0), zkong[zkong]@[127.0.0.1]
  select item0_.barCode as col_0_0_, item0_.type as col_1_0_, item0_.is_specs as col_2_0_ from item item0_ where item0_.merchant_id=N and (item0_.type=N or item0_.is_specs=N)

筛选记录信息,如某个表

mysqldumpslow -t 10 -s t -g "item" slow.log

默认不开启配置

mysqldumpslow -a -t 1 -s t slow.log

image.png

按照返回数查询

mysqldumpslow -a -t 2 -s ar slow.log

按照锁时间查询

mysqldumpslow -a -t 2 -s al slow.log

按照平均查询时间查询

mysqldumpslow -a -t 2 -s at slow.log

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

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

相关文章

linux常用命令-路径切换及查看

切换路径-cd 我们可以使用cd(change directory,切换目录)的命令来进行目录切换 常规 其命令格式为 cd [相对路径或绝对路径] 例如: // 使用相对路径,切换到postfix目录下 cd ../postfix// 使用绝对路径切换到/var/…

centos7安装zabbix5.0

zabbix官网:https://www.zabbix.com/ 安装Zabbix存储库 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all安装Zabbix server,Web前端,agent yum install zabbix-server-mys…

2023年天津农学院专升本专业课考试考场安排与东西校区入校须知

天津农学院2023年高职升本科专业课考试考场安排等事宜的通知一、考试时间及考场分布情况天津农学院专升本专业课考试2022年12月31日上午在天津农学院东、西校区进行,每位考生请按照准考证上标注的地点参加考试即可,考场安排及考场分布图详见。天津农学院…

docker 安装mysql数据库

docker安装 如果不知道docker怎么安装的,请看docker安装教程 docker 安装mysql 拉取镜像 docker pull mysql:5.7在本地创建目录(存放数据库文件) 容器中的文件,映射到宿主机。 mkdir -p ./mysql/data ./mysql/logs ./mysql/…

FineRrport填报重复数据校验

参考: 校验填报页面的数据是否重复- FineReport帮助文档 - 全面的报表使用教程和学习资料 联立多字段校验是否与数据库中数据重复- FineReport帮助文档 - 全面的报表使用教程和学习资料 1、校验填报页面数据是否重复(多列) 1&#xff09…

Unity Recorder的使用讲解

Unity Recorder的使用讲解使用目的插件下载插件位置窗口基本介绍基本设置选项录制列表Animation Clip参数讲解Movie 电影模式参数介绍SourceGameViewTargeted Camera360ViewRender Texture AssetOutPut ReslutionInclude AudioFlip VerticalTexture SamplingFormatMedia File F…

智慧餐饮远程监控解决方案,让您吃的放心吃的安心

一、行业背景随着国民经济的提高,人们的生活水平也随之提升。近几年,食品安全问题频发,大家也开始对食品安全问题重点关注,尤其是食品生产企业、餐饮单位或学校食堂。自2014年开始,国家食品药品监督管理总局就以及开展…

Docker 概述

系列文章目录 文章目录系列文章目录前言Docker平台用Docker可以做什么Docker架构The Docker daemonThe Docker clientDocker DesktopDocker registriesDocker objectsImagesContainers总结前言 Docker是为开发、运行应用而生的开放的平台。Docker使你可以将应用从依赖中分离&a…

别在用BigDecimal给自己挖坑了!

前言 工作中,我们都会用到BigDecimal来进行金额计算,但是他有许多坑,可能针对新手不注意的话,就给自己多加几个bug了。一起来看看吧。 创建 new BigDecimal()还是BigDecimal#valueOf()? 创建对象的时候应该使用Big…

【Spring【IOC】】——15、使用@PropertySource加载配置文件

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

Java8中Optional类入门-替代null避免冗杂的非空校验

场景 Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验: Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验_霸道流氓气质的博客-CSDN博客 上面在讲Guava时讲过Optional,下面做具体的入门示例讲解…

深度学习笔记:python的numpy和matplotlib库

1 numpy库 numpy为python数学计算库,里面的数组类提供大量便捷的数组和矩阵运算方法 创建numpy数组: import numpy as np x np.array([1.0, 2.0, 3.0])创建二维数组: import numpy as np a np.array([[1, 2], [3, 4]]) a.shape # outpu…

bWAPP靶场搭建——直接使用虚拟机镜像导入配置

一、bWAPP简介 bwapp是一款非常好用的免费的、开源漏洞演示学习平台;它有100多个网络错误!且它涵盖了所有已知的主要web漏洞,包括OWASP Top 10项目的所有风险。 bWAPP是一个使用MySQL数据库的PHP应用程序;它可以通过Apache/IIS和MySQL托管在L…

优维低代码:关联微应用和Feature Flags 特性开关

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。 连载…

图论(1):单源最短路的建图方式

一、单源最短路算法 最短路算法_yan__kai_的博客-CSDN博客 二、例题 1.acwing1129 题意解读&#xff1a;走过一条路存在花费c&#xff0c;求最小费用即求最短路。无向图 直接背模板&#xff1a; #include<iostream> #include<algorithm> #include<cstring&…

环形轨道运料电动葫芦无线控制系统的组成与功能

一&#xff0e;关于环形轨道运料电动葫芦的控制 目前电动葫芦的控制部分都是由PLC完成的&#xff0c;每个电葫芦内都有一台PLC&#xff0c;主站PLC一般设置在地面控制机柜内。由于电葫芦是在半空中移动工作的&#xff0c;与地面PLC的通讯问题一直是电葫芦设备运行中棘手的问题…

虚拟人,会成为品牌下一次逆势的解药吗?

如果说2021年是虚拟偶像的崛起元年&#xff0c;那2022可以称得上是爆发期了&#xff0c;一方面&#xff0c;定位国风、时尚博主、模特、歌手的虚拟偶像数量激增&#xff0c;被冠以“首位”、“行业第一”等称号的新面孔轮番出道&#xff1b;其次&#xff0c;虚拟人与品牌的商业…

不同Excel多列对比记录新增、修改、删除和无变化的行,并生成对比报告

执行【Exce数据对比.exe】&#xff0c;打开界面如图选择要对比的Excel文件和被对比的Excel文件&#xff0c;输入要对比Sheet页的需要&#xff08;注意&#xff0c;Sheet需要从0开始&#xff09;输入主键列和被对比的列。主键列和被对比列均为二维列表&#xff0c;列的索引从0开…

七、HashSet底层详解

文章目录特点结论源码解读构造器添加元素小结说明练习(重要*掌握)思考特点 无序、无索引 不可重复(地址)&#xff0c;可存一个null 不可用索引取出 存放和取出顺序不一定一样 但每次取出的顺序是一样的 遍历只能迭代器和增强for 底层其实是HashMap 结论 源码解读 构造…

Spring AOP源码:配置文件解析过程

前言 本篇文章主要讲解AOP配置中的几个通知类的解析过程&#xff0c;为后续对目标类进行代理做准备&#xff1b;在前面的Spring IOC篇我们讲解了自定义配置的解析&#xff0c;AOP配置的解析过程也是其自定义注解的过程&#xff0c;如果不熟悉自定义解析过程可以看之前的文章Sp…