MySQL 慢查询日志介绍

松材线虫病害智能检测:基于YOLOv8的无人机航拍数据集构建与模型优化 本文探讨了基于YOLOv8的无人机航拍技术在松材线虫病害智能检测中的应用。通过构建高质量巡检数据集和优化模型架构(如RepVit主干网络和跨尺度特征融合模块),显著提升了病害识别准确率。该方案在复杂森林环境中表现出色,将检测效率提高数倍,为林业病害防控提供了高效解决方案。 阅读详情

一. 慢查询介绍

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

默认情况下,MySQL数据库并不启动慢查询日志,需要手动开启。如果不是调优需要的话,一般不建议开启,因为开启慢查询日志会或多或少带来一定的性能影响。

在SQL Server中我们利用SQL Profile来记录SQL执行情况,在Oracle中我们可以使用AWR、ASH报告来分析历史SQL执行情况,类似的调优方式映射到MySQL中,即对应为慢查询日志。

二. 参数介绍

介绍与慢查询日志相关的参数

slow_query_log:是否开启慢查询日志,1表示开启,0表示关闭。

slow_query_log_file:MySQL慢查询日志存储路径。

long_query_time :慢查询阈值(s),当查询时间多于设定的阈值时,记录日志。

log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中。

log_throttle_queries_not_using_indexes:表示每分钟允许记录到slow_log的且未使用索引的sql语句次数(0为无限制,如果为固定值,可能会记录不到sql)。

log_output:日志存储方式。’FILE’表示存入文件,‘TABLE’表示存入系统表。因为FILE模式开销比较低,所以默认为FILE。

log_slow_admin_statements = 1: 记录ALTER TABLE等语句引发的慢查询

log_slow_slave_statements = 1:记录从服务器产生的慢查询

min_examined_row_limit = 100 :SQL扫描行数大于等于100行才会被记录

 

我们可以通过show variables命令查看当前具体的参数值,如下查看当前slow_query_log为OFF,即表示未开启慢查询日志,long_query_time值为2,即表示慢查询阈值为2s。

mysql> show variables like '%slow_query_log%';
+---------------------+----------+
| Variable_name       | Value    |
+---------------------+----------+
| slow_query_log      | OFF      |
| slow_query_log_file | slow.log |
+---------------------+----------+

mysql> show variables like '%long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 2.000000 |
+-----------------+----------+

 

三. 开启慢查询日志

开启慢查询日志只需要如下修改部分参数即可,这里设置的慢查询阈值为0.1s,项目上可以根据实际情况调整,这边的建议是如果压测可以设置为0.1s,如果是非压测可以设置为2s。由于开启了log_queries_not_using_indexes,所以慢日志不仅会记录超过阈值的SQL,没有走索引的SQL也会记录日志,即使这些SQL并没有超过阈值。通过set global设置参数后,只会在新连接中生效,所以要查看修改后的参数值,需要重新连接。

mysql> set global long_query_time = 0.1;   
Query OK, 0 rows affected (0.00 sec)

mysql> set global log_queries_not_using_indexes = 1;    
Query OK, 0 rows affected (0.00 sec)

mysql> set global log_throttle_queries_not_using_indexes = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global min_examined_row_limit = 100;
Query OK, 0 rows affected (0.00 sec)

mysql> set global slow_query_log = 1;
Query OK, 0 rows affected (0.00 sec)

 

 

四. 日志内容

我们得到慢查询日志后,最重要的一步就是去分析这个日志。我们先来看下慢日志里到底记录了哪些内容。

如下图是慢日志里其中一条SQL的记录内容,可以看到有时间戳,用户,查询时长及具体的SQL等,内容其实是很齐全的。但是存在一个问题,慢日志里往往有许多SQL,不可能一条一条SQL看过去,我们需要将所有的慢SQL分组统计后在进行分析。

 

# Time: 2018-08-16T00:00:04.821003+08:00
# User@Host: zwfwroot[zwfwroot] @ 19.15.0.30 [19.15.0.30]  Id: 67508
# Schema: gdqlk  Last_errno: 0  Killed: 0
# Query_time: 14.344185  Lock_time: 0.000028  Rows_sent: 237064  Rows_examined: 237064  Rows_affected: 0
# Bytes_sent: 96078006
SET timestamp=1534348804;
SELECT * FROM `audit_catalog_lobby`;

 

 

五. 日志分析

pt-query-digest是用于分析MySQL慢查询的一个工具,先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,同时把分析结果输出到文件中,我们可以借助分析结果找出问题进行优化。

pt-query-digest是percona-toolkit工具包下的一个工具,如果MySQL是使用Linux_5.7.22版本的bin包安装的话,默认会安装percona-toolkit,可以直接使用pt-query-digest命令来分析慢查询日志。

Linux下使用如下命令分析指定时间范围内的慢查询,slow.log需要指定具体路径,slow_report.log指定输出文件。

 # pt-query-digest slow.log --since '2017-01-07 09:30:00' --until '2017-01-07 10:00:00' > slow_report.log

 

 

下面介绍通过pt-query-digest分析slow.log后得到的slow_report.log文件。

文件内容总体分成3个部分,第一部分为总体统计结果,第二部分为查询分组统计结果,第三部分为每一类查询的详细统计结果。

(1) 总体统计结果


Overall:查询总数、唯一查询数量、QPS、并发 
Time range:查询的时间范围 
Exec time :执行时间 
Lock time:被阻塞时间 
Rows sent:查询返回行数 
Rows examine : 查询扫描行数 
query size : 查询数据量 
total:总计 min:最小 max:最大 avg:平均 stddev: 标准差 
95%:把所有值从小到大排列,位于95%的值 
median:中位数,把所有值从小到大排列,位于中间的值

(2) 查询分组统计结果


Rank:所有语句的排名,默认按查询总时间降序排列 
Query ID:SQL的ID 
Response:总执行时间 
time:该查询在本次分析中总的时间占比 
calls:执行次数,即本次分析总共有多少条这种类型的查询语句 
R/Call:平均每次执行的响应时间 
V/M:方差均值 
Item:查询对象

 (3) 每个查询的详细统计结果 


Query:对应第二部分中的Rank排名 
ID:查询ID号,与Query ID对应 
Time range:查询时间范围 
Attribute:针对此类查询的统计 
Databases:数据库名 
Hosts:执行查询的IP分布(占比) 
Users:各个用户执行的次数(占比) 
Query_time distribution :查询时间分布, 长短体现区间占比,本例中10s以上查询数较多。

六. 总结

项目上可以通过此方法来优化SQL,根据Rank排名先后,依次分析优化SQL即可。

 

【C语言】字符常量详解 字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。 阅读详情

相关推荐

在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

最近在做科研训练的时候配置了HKUST-Aerial-Robotics实验室的VINS_Fusion代码项目,经历了一些编译报错的问题,在网上查找的时候博客内容良莠不齐,且实质针对性意见不多,于是在此记录下自己配置期间遇到的一些共性问题,留作自己日后参考和大家的交流学习。

wyr1849089774的博客 8273

mysql rows_sent_Mysql 优化,慢查询

最近项目上遇到点问题,服务器出现连接超时。上次也是超时,问题定位到mongodb上,那次我修改好了,这次发现应该不是这个的问题了。初步怀疑是mysql这边出问题了,写的sql没经过压力测试,导致用户量多的时候,出现拥堵。好,那就来看看mysql方便的慢查询吧,来看看具体的哪些sql查询慢,从这里开始来优化下。一:开启慢查询先来看看慢查询日志设置的时间长度:show VARIABLES LIKE '...

weixin_31688873的博客 1370

RK3568部署YOLOv8的7种方法对比:量化vs非量化的性能实测与优化建议

本文针对RK3568平台,深度对比了YOLOv8模型的七种部署方法,重点分析了量化与非量化策略的性能差异。通过实测数据,详细评估了不同方法在推理速度、CPU占用、内存消耗及模型精度上的表现,并提供了从模型结构调整到系统级优化的具体建议,为边缘AI部署选型提供实用参考。

weixin_29099217的博客 531

mysql rows_sent_对MySQL慢查询日志进行分析的基本教程

0、首先查看当前是否开启慢查询:(1)快速办法,运行sql语句show VARIABLES like "%slow%"(2)直接去my.conf中查看。my.conf中的配置(放在[mysqld]下的下方加入)[mysqld]log-slow-queries = /usr/local/mysql/var/slowquery.loglong_query_time = 1 #单位是秒log-queri...

weixin_29009971的博客 1081

离线环境下 Ubuntu 22.04 制作自定义apt源 安装 Docker环境 的部署方案

本文介绍了一种在无外网环境下部署服务器项目的离线方案。通过在外网环境中制作包含APT软件包和Docker镜像的离线资源包,实现在内网环境中的完整部署。方案详细说明了离线APT源的制作方法、Docker镜像的导出/导入流程,以及内网服务器的软件安装和网络配置步骤。特别强调了版本一致性、目录结构规范和网络适配等注意事项,适用于需要严格隔离网络的生产环境部署。该方案具有可扩展性,可根据实际需求调整软件包和镜像列表。

mmx_2022的博客 654

数字IC后端实现 | Innovus各个阶段常用命令汇总

数字IC后端设计实现之Innovus常用命令汇总

weixin_37584728的博客 7337

MySQL运维09-慢查询日志

MySQL运维09-慢查询日志

日拱一卒的博客 3436

GNSS - PPP软件 - GAMP 在VS2019/2022下完成调试、跑通程序(超详细!)

WIN32;_DEBUG;_CONSOLE;O_WARNINGS;ENAGLO;ENACMP;ENAGAL;ENAQZS;NFREQ=3。

qq_43381998的博客 8251

mysql rows_sent_MySQL慢查询日志释疑总结

之前写了一篇,总结了一些MySQL慢查询日志常用的相关知识,这里总结一下在工作当中遇到关于MySQL慢查询日志的相关细节问题,有些是释疑或自己有疑惑,自己测试验证、解惑方面的知识。此篇只是总结个人的一些经验,不足之处,敬请指正!1: 为什么在慢查询日志里面出现Query_time小于long_query_time阀值的SQL语句呢?例如,如下截图,long_query_time=5, 但是Quer...

weixin_34264495的博客 2353

《数据结构》04-树4 是否同一棵二叉搜索树

题目 给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。 输入格式: 输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要...

叫我皮卡丘 2013

PCL 循环体素滤波

本文提出了一种自动循环体素滤波算法,用于解决点云配准中分辨率差异大、参数设置复杂的问题。算法通过计算点云分辨率(公式1),采用迭代方式调整体素尺寸(公式2),逐步逼近目标分辨率。该方法在保留几何特征的同时有效精简数据量,实现了均匀分辨率的自动调整。实验通过PCL库实现,展示了原始点云与滤波结果的对比效果,验证了算法在减少数据规模方面的有效性。该方法为点云配准提供了预处理解决方案,相关成果已发表于SCI期刊。

点云侠的博客 284

Mysql中错误日志、binlog日志、查询日志、慢查询日志简单介绍

前言 数据库的日志是帮助数据库管理员,追踪分析数据库以前发生的各种事件的有力根据。mysql中提供了错误日志、binlog日志(二进制日志)、查处日志、慢查询日志。在此,我力求解决下面问题:各个日志的作用是什么?如何去控制这些日志呢?如何去使用这些日志提供的信息呢? 错误日...

aoe41606的博客 274

基于PCL的电力线点云提取与分割实现

本文基于PCL库实现电力线点云提取与分割,包含6个核心处理阶段:文件读取与结果文件夹创建、高程滤波分割候选点云、欧式聚类去噪、电力线分段提取、球形邻域搜索补全点云、最终分割与可视化保存。通过PCA计算点云线性特征(阈值0.91)筛选电力线点,采用欧式聚类(容忍度3.0)去除噪点,并针对不同规模聚类差异化设置球形搜索半径(4.0/6.0)补全点云。最终通过欧式聚类分割并可视化带颜色点云。算法对高程滤波阈值、聚类参数等具有敏感性,需根据点云特性调整优化。

weixin_45196569的博客 196

MySQL慢查询日志介绍

一、MySQL慢查询日志介绍 转载于:https://www.cnblogs.com/yujiemeigui/p/8120689.html

weixin_34261739的博客 71

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Mysql日志介绍】一般查询日志、慢查询日志、错误日志、二进制日志、Redo Log 、UndoLog

MySQL Server 有以下几种日志,可以记录服务器正在发生的活动。日志类型日志信息错误日志 (Error log)mysqld在启动、运行或停止时遇到的问题一般查询日志 (General query log)已建立的客户端连接和从客户端接收到的语句慢查询日志 (Slow query log)执行时间超过指定秒数的查询二进制日志 (Binary log)更改数据的语句(也用于主从复制)中继日志 (Relay log)从源服务器接收到的数据更改。

m0_74910646的博客 1258

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

离线语音+无线控制,打造断网可用的智能家居方案

智能家居的核心价值在于稳定与可靠,而过度依赖云端的方案在断网时往往形同虚设。离线语音识别、无线控制协议与本地网关共同构成了真正“断网可用”的智能家居底座。本文从技术原理出发,解析离线语音的识别链路、主流无线协议的选型对比,以及如何通过MQTT和Home Assistant搭建本地控制中枢。针对实际部署中的命令词优化、供电稳定性、固定IP等关键问题,提供可落地的工程经验。无论是DIY改造还是全屋规划,都能从中找到一套兼顾成本与可靠性的实践路径,让智能家居不再受制于外网。

weixin_34295316的博客 297

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MySQL慢查询日志开启分析详解介绍

mysql的慢查询日志是用来记录log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在MySQL启动的时候加入一些参数即可实现了,下面小编来整理windows与linux下的例子. (1)配置开启 Linux: 在mysql配置文件 my.cnf 中增加如下语句: log-slow-queries=/var/lib/mys

BJ-Yangyanfei 423

切割mysql慢日志_logrotate介绍-并用logrotate切割mysql慢查询日志

一,logrotate是什么logrotate 程序是一个日志文件管理工具。用来把旧的日志文件的内容转存到新的文件中,并清空或者是删除旧的日志文件。二,用logrotate做什么我们把日志文件,按照日期来转储,以方便管理和查看,这个过程一般通过 cron 来执行。三,查看logrotate的配置cat /etc/logrotate.conf# see "manlogrotate" for det...

weixin_39531037的博客 422

mysql5.6 开启查询慢日志_MySQL5.6 怎样优化慢查询的SQL语句 -- 慢日志介绍

近期有个开发团队抱怨我们平台包括的mysql cluster不行,总是报mysql的”heartbeat Error“。分析了他们收集的日志。没有发现mysql cluster节点之间的网络有问题,倒是发现了一个非常有意思的现象,在mysql的slow log里面发现了大量的慢查询。基本上都是要1秒钟以上,非常明显这样的耗时高的慢查询会影响系统行为。指出这点让开发团队去优化他们的应用,非常好奇他们...

weixin_42515313的博客 208

MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍

转载地址:http://blog.youkuaiyun.com/cloud_ll/article/details/39826147 最近有个开发团队抱怨我们平台包含的mysql cluster不行,总是报mysql的”heartbeat Error“,分析了他们收集的日志,没有发现mysql cluster节点之间的网络有问题,倒是发现了一个很有意思的现象,在mysql的slow log里面发现

可口可乐的博客 400

logrotate介绍-并用logrotate切割mysql慢查询日志

一,logrotate是什么 logrotate 程序是一个日志文件管理工具。用来把旧的日志文件的内容转存到新的文件中,并清空或者是删除旧的日志文件。 二,用logrotate做什么 我们把日志...

424

MySQL5.6 怎样优化慢查询的SQL语句 -- 慢日志介绍

近期有个开发团队抱怨我们平台包括的mysql cluster不行,总是报mysql的”heartbeat Error“。分析了他们收集的日志。没有发现mysql cluster节点之间的网络有问题,倒是发现了一个非常有意思的现象,在mysql的slow log里面发现了大量的慢查询。基本上都是要1秒钟以上,非常明显这样的耗时高的慢查询会影响系统行为。指出这点让开发团队去优化他们的应用,非常...

weixin_33720452的博客 118

MySQL慢查询日志

MySQL慢查询日志 关于MySQL的基本使用记录一下。 介绍: 开启慢查询日志后,设定一个阀值,会将超过这个阀值设定的时间的查询语句记录下来,默认是不开启的,在实际场景中也不建议开启,会影响性能,除了要测试调优的时候再开启。 日志位置: var/lib/mysql/xxx-slow.log 开启方法: --查看状态 SHOW VARIABLES LIKE '%slow_query_log%';...

qq_41797857的博客 179

MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍

介绍下如何开启MySQL slow query log

cloud的技术积累 4042

慢查询日志分析

这个部分是一个大致的概要信息(类似loadrunner给出的概要信息),通过它可以对当前MySQL的查询性能做一个初步的评估,比如各个指标的最大值(max),平均值(min),95%分布值,中位数(median),标准偏差(stddev)。注意:我这里用的MySQL版本是5.6,不同版本的MySQL开启慢查询的配置是不同的,比如5.6之前的某些版本是ong_query_time, long_query_time和log-slow-queries。查看下当前版本具体配置是什么。还可以跟一些过滤条件。

分享技术架构、运维、程序开发经验 1416
上一篇: 【JVM学习笔记】虚拟机工具及性能监测命令
下一篇: 【FAQ】Linux-CentOS7 常见问题及解决
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值