Mysql慢日志、慢SQL

慢查询日志

查看执行慢的SQL语句,需要先开启慢查询日志。
MySQL 的慢查询日志,记录在 MySQL 中响应时间超过阀值的语句(具体指运行时间超过 long_query_time 值的SQL。long_query_time 的默认值为10,意思是运行10秒以上(不含10秒)的语句)。

目的:发现执行时间特别长的SQL查询,进行优化。

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

慢日志常用配置项

1

2

3

4

5

6

7

8

slow_query_log       是否启用慢查询日志,默认为0,可设置为0、1,1表示开启。

slow_query_log_file  指定慢查询日志位置及名称,默认值为host_name-slow.log,可指定绝对路径。

long_query_time      慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s。

log_output           慢查询日志输出目标,默认为file,即输出到文件。

log_timestamps       主要是控制 error log、slow log、genera log 日志文件中的显示时区,默认使用UTC时区,建议改为 SYSTEM 系统时区。

log_queries_not_using_indexes    是否记录所有未使用索引的查询语句,默认为off。

min_examined_row_limit           对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中,默认为0。

log_slow_admin_statements        慢速管理语句是否写入慢日志中,管理语句包含 alter table、create index 等,默认为 off 即不写入

一般情况下,我们只需开启慢日志记录,配置下阈值时间,其余参数可按默认配置。对于阈值时间,可灵活调整,比如说可以设置为 1s 或 3s 。

查看是否开启慢查询日志

1

show variables like '%slow_query_log%';

开启慢查询(临时,当前会话有效)

1

set global slow_query_log='ON';

查看慢查询日志存放文件位置

1

show variables like '%slow_query_log_file%';

查看long_query_time阈值

1

show variables like '%long_query_time%';

设置long_query_time阈值(临时,当前会话有效)

1

set global long_query_time=3

直接修改配置文件(全局,需要重启服务,慎重)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#编辑配置文件

vim /etc/my.cnf

# 修改配置项(如果没有就加上)

[mysqld]

slow_query_log = ON

slow_query_log_file = /var/lib/mysql/my-slow.log

long_query_time = 1

log_timestamps = SYSTEM

log_output = FILE

# 重启mysqld服务

systemctl restart mysqld

# 查看mysqld服务

systemctl status mysqld

测试

1

2

select sleep(5);

ls /var/lib/mysql/xxx-slow.log

慢查询日志文件分析

单条记录结构

单条记录结构:

1

2

3

4

5

# Time: 2024-03-01T17:12:40.156488+08:00

# User@Host: panda[panda] @  [192.168.72.1]  Id:     8

# Query_time: 5.000688  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 1

SET timestamp=1709284355;

select sleep(5);

字段说明:
慢查询日志以#作为起始符。
Time:查询的时间。
User@Host:表示用户 和 慢查询查询的ip地址。
如上所述,表示 root用户 localhost地址。
Query_time: 表示SQL查询持续时间, 单位 (秒)。
Lock_time: 表示获取锁的时间, 单位(秒)。
Rows_sent: 表示发送给客户端的行数。
Rows_examined: 表示:服务器层检查的行数。
set timestamp :表示 慢SQL 记录时的时间戳。
最后 select sleep(5) 则表示慢SQL语句。

慢查询日志分析-mysqldumpslow

MySQL自带了一个慢查询分析工具mysqldumpslow。
试了下不太好使。可以试试:
Navicat Monitor、signoz、hertzbeat 这些性能监测工具。

1

2

3

4

mysqldumpslow ­s c ­t 10 /var/run/mysqld/mysqld­slow.log # 取出使用最多的10条慢查询

mysqldumpslow ­s t ­t 3 /var/run/mysqld/mysqld­slow.log # 取出查询时间最慢的3条慢查询

mysqldumpslow ­s t ­t 10 ­g “left join” /database/mysql/slow­log #得到按照时间排序的前10条里面含有左连接的查询语句

mysqldumpslow ­s r ­t 10 ­g 'left join' /var/run/mysqld/mysqldslow.log # 按照扫描行数最多的

慢查询日志分析-Navicat Monitor

官网下载就行了。跟着指引配置即可。
很舒服,还可以自动提供一些运维建议。

查询分析

其他细节

记录管理语句

在 MySQL 中,慢查询日志中默认不记录管理语句,如:

1

alter table, analyze tablecheck table

不过可通过以下属性进行设置:

1

mysql> set global log_slow_admin_statements = "ON";

记录未走索引的SQL语句

在 MySQL 中,还可以设置将未走索引的SQL语句记录在慢日志查询文件中(默认为关闭状态)。通过下述属性即可进行设置:

1

2

mysql> set global log_queries_not_using_indexes = "ON";

Query OK, 0 rows affected (0.00 sec)

SQL 复制 全屏

慢查询日志输出位置

在MySQL中,日志输出格式有支持:FILE(默认),TABLE 两种,可进行组合使用。如下所示:

1

set global log_output = "FILE,TABLE";

这样设置会同时在 FILE, mysql库中的slow_log表中同时写入。

1

select * from mysql.slow_log;

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

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

相关文章

实现基于Spring Boot的Web安全防护

实现基于Spring Boot的Web安全防护 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在当今互联网应用的开发中,保护用户数据和系统安全至关重要。S…

阿里云RDS云数据库库表恢复操作

最近数据库中数据被人误删了,记录一下恢复操作方便以后发生时进行恢复. 1.打开控制台,进入云数据库实例. 2.进入实例后 ,点击右侧的备份恢复,然后看一下备份时间点,中间这边都是阿里云自动备份的备份集,基本都是7天一备…

详解「一本通 5.1 练习 1」括号配对(区间DP经典题)

一.题目 二.思路 题目的大意是说:给你一个只由[ ] ( )构成的字符串,请问需要增加多少个字符才能使其变为一个合法的括号序列。 因为添加若干字符使其达到匹配的目的等价于将不匹配的字符去除使得字符串达到匹配的目的 所以这题只需计算出已匹配完成的括号数,再…

中英双语介绍伦敦金融城(City of London)

中文版 伦敦金融城,通常称为“金融城”或“城”(The City),是英国伦敦市中心的一个著名金融区,具有悠久的历史和全球性的影响力。以下是关于伦敦金融城的详细介绍,包括其地理位置、人口、主要公司、历史背…

机器学习原理之 -- 随机森林分类:由来及原理详解

随机森林分类器是机器学习中一种强大且灵活的集成学习方法。它通过构建多棵决策树并结合其结果来提高分类精度和稳定性。本文将详细介绍随机森林分类器的由来、基本原理、构建过程及其优缺点。 二、随机森林的由来 随机森林(Random Forest)由Leo Breima…

【优化论】约束优化算法

约束优化算法是一类专门处理目标函数在存在约束条件下求解最优解的方法。为了更好地理解约束优化算法,我们需要了解一些核心概念和基本方法。 约束优化的核心概念 可行域(Feasible Region): 比喻:想象你在一个园艺场…

基于机器学习的永磁同步电机矢量控制策略-高分资源-下载可用!

基于机器学习的永磁同步电机矢量控制策略 优势 训练了RL-Agent,能够提高电机在非线性负载下的性能。 部分程序 仿真结果 转矩估计及dq轴电流。 代码有偿,50,需要的可以联系。

数学建模算法目标规划

在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记 LP)则是数学规划的一个重要分支。特别是在计算机能处理成千上万个…

底层软件 | STM32启动分析之main函数是怎样跑起来的

应届生面试,基本上嵌入式一般都是基于32的项目,记得我当年面大疆的就是有这个题目。 1、STM32启动规则 STM32根据boot0和boot1的电平决定启动位置,boot00时从主Flash启动,即0x08000000地址启动。 按照spec,M3核的中断…

构建工程化:多种不同的工程体系如何编写MakeFile

源码分析 核心MakeFile 这个 Makefile 是一个复杂的构建脚本,用于管理和构建一个大型项目。它包括多个目标、条件判断和递归调用 make 命令来处理多个子项目和子目录。让我们逐部分进行详细解析。 伪目标和变量定义 .PHONY: all clean install build test init.…

依赖注入的优点、解决的问题以及其底层原理和逻辑

依赖注入(Dependency Injection, DI)是一种设计模式,用于实现控制反转(Inversion of Control, IoC)。它通过将对象的依赖关系从类内部转移到外部配置或注入,从而提高代码的可维护性、可测试性和可扩展性。以…

使用Spring Boot和Apache Camel集成第三方服务

使用Spring Boot和Apache Camel集成第三方服务 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何利用Spring Boot和Apache Camel来集成第三方服…

pycharm如何使用jupyter

目录 配置jupyter新建jupyter文件别人写的方法(在pycharm种安装,在网页中使用) pycharm专业版 配置jupyter 在pycharm终端启动一个conda虚拟环境,输入 conda install jupyter会有很多前置包需要安装: 新建jupyter…

一文理清LK光流

举出几种光流方法,说明LK光流的建模方式? 光流方法是用于估计图像序列中像素点运动的技术,广泛应用于计算机视觉和视频处理领域。以下是几种常见的光流方法: Lucas-Kanade (LK) 方法: 一种基于局部窗口的光流估计方法…

代理IP在未来将面临哪些挑战?

今天我们来聊聊代理IP在未来可能会面临的挑战。虽然代理IP技术目前应用广泛,但随着科技的发展和网络环境的变化,代理IP也将面临一些新的挑战。让我们一起来看看这些挑战是什么吧! 1. 更严格的网络封锁和检测 现代社会各行各业都在飞速发展&…

可变参数 Collections 不可变集合 Stream流

目录 1.可变参数: 2.Collections: 3.不可变集合: 4.Stream流: 1、什么是流 2、如何生成流 1.单列集合获取Stream流 2.双列集合获取Stream流 3.数组获取Stream流: 4.一堆零散数据: Stream接口中的静态方法 3.Stream流的…

解决分布式环境下session共享问题

在分布式环境下,session会存在两个问题 第一个问题:不同域名下,浏览器存储的jsessionid是没有存储的。比如登录时认证服务auth.gulimall.com存储了session,但是搜索服务search.gulimall.com是没有这个session的; 第二个问题&…

基于SpringBoot的校园台球厅人员与设备管理系统

本系统是要设计一个校园台球厅人员与设备管理系统,这个系统能够满足校园台球厅人员与设备的管理及用户的校园台球厅人员与设备管理功能。系统的主要功能包括首页、个人中心、用户管理、会员账号管理、会员充值管理、球桌信息管理、会员预约管理、普通预约管理、留言…

【SSRF】

SSRF (Server-Side Request Forgery 服务端请求伪造) 文章目录 0x01 是什么?0x02 怎么判断是否存在SSRF漏洞?0x03 防御0x04 绕过手段 0x01 是什么? 是什么?   答:攻击者构造请求,…

w3wp.exe 中发生未处理的 Microsoft ,NETFramework 异常。

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…