慢日志查询

概述

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过 long_query_time 值的SQL,则会被记录到慢查询日志中,ong_query_time 的默认值为 10,意思是运行10S以上的语句。就会被认作是慢查询,默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

查询日志相关参数

查看是否开启慢查询日志

SHOW VARIABLES LIKE '%slow_query_log%'

开启

SET GLOBAL slow_query_log = 1;

只对当前数据库生效, 如果重启后, 则会失效,如果永久生效,必须要修改配置文件

slow_query_log = 1
slow_query_log_file = 地址

那么开启了慢查询日志后,什么样的SQL才会记录到慢查询日志里面呢?

SHOW VARIABLES LIKE 'long_query_time'
SET GLOBAL long_query_time = 4;

要断开连接后, 才能生效

SHOW GLOBAL VARIABLES LIKE 'long_query_time';
SELECT sleep(4)
SHOW GLOBAL STATUS LIKE '%slow_queries%';

慢日志分析工具

参数

-s:按照那种方式排序
c:访问计数
l:锁定时间
r:返回记录
al:平均锁定时间
ar:平均访问记录数
at:平均查询时间
-t:是top n的意思,返回多少条数据
-g:可以跟上正则匹配模式,大小写不敏感

示例

得到返回记录集最多的10个SQL

mysqldumpslow - s r - t 10 / DATABASE / mysql / mysql06_slow.log

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

mysqldumpslow - s c - t 10 / DATABASE / mysql / mysql06_slow.log

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

mysqldumpslow - s t - t 10 - g “left join” / DATABASE / mysql / mysql06_slow.log

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

mysqldumpslow - s r - t 20 / mysqldata / mysql / mysql06 - slow.log | more

Show Profile分析

概述

Show Profile 是mysql提供的可以用来分析当前会话中SQL语句执行的资源消耗情况的工具,可用于SQL调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。把一条SQL在mysql当中每一个环节耗费的时候都记录下来,默认该功能是关闭的,使用前需开启。默认保存最近15次运行的结果。

使用

  1. 查看当前版本是否支持
SHOW VARIABLES LIKE 'profiling';
  1. 打开 profile
SET profiling = ON
  1. 查看结果
SHOW PROFILES
  1. 诊断SQL
SHOW PROFILE cpu,block io FOR QUERY 88;

在这里插入图片描述

当出现以下选项时, 要进行优化

  • converting HEAP to MyIsAM,查询结果太大,内存都不够用了,往确磁盘上存在了
  • Creating tmp table,创建临时表,copy数据到临时表,用完再进行删除
  • Copying to tmp table on disk,把内存中临时表复制到磁盘, 危险操作
  • Locked,被锁定

全局查询日志

只允许在测试环境用, 不能在生产环境使用,在测试是可以把所有执行的SQL抓取出来查看

设置启用

SET GLOBAL general_log = 1;
SET GLOBAL log_output = 'TABLE'

此后所编写的SQL语句将会记录到mysql库里的 general_log 表中

SELECT * FROM mysql.general_log;
mysql - u root - p1234 -- DEFAULT - CHARACTER -SET = utf8

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

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

相关文章

Linux系统之lsof命令的基本使用

Linux系统之lsof命令的基本使用 一、lsof命令的基本使用二、lsof命令的使用帮助2.1 lsof命令的help帮助信息2.2 lsof命令帮助解释 三、lsof的基本使用3.1 直接使用lsof命令3.2 查看某个进程打开的所有文件3.3 查看某个用户打开的所有文件3.4 查看某个文件被哪些进程打开3.5 查看…

openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库

文章目录 openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库127.1 前提条件127.2 背景信息127.3 操作步骤 openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库 127.1 前提条件 系统中需要有审计管理员或者具有审计管理员权…

软考小记-软件工程

模块的控制范围包括模块本身及其所有的从属模块。模块的作用范围是指模块一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围.,原则上一个模块的作用范围应该在其控制范围之内,若没有,则可以将判定所在模块…

图像处理01 小波变换

一.为什么需要离散小波变换 连续小波分解,通过改变分析窗口大小,在时域上移动窗口和基信号相乘,最后在全时域上整合。通过离散化连续小波分解可以得到伪离散小波分解, 这种离散化带有大量冗余信息且计算成本较高。 小波变换的公…

【数据结构(二)】单链表(3)

文章目录 1. 链表介绍2. 单链表应用实例2.1. 顺序添加方式2.1.1. 思路分析2.1.2. 代码实现 2.2. 按照编号顺序添加方式2.2.1. 思路分析2.2.2. 代码实现 3. 单链表节点的修改3.1. 思路分析3.2. 代码实现 4. 单链表节点的删除4.1. 思路分析4.2. 代码实现 5. 单链表常见面试题5.1.…

map与set的封装

目录 红黑树的结点 与 红黑树的迭代器 红黑树的实现: 迭代器: ​编辑 红黑树的查找: 红黑树的插入: ​编辑 检查红色结点:​编辑红黑树的左旋 ​编辑红黑树的右旋 ​编辑红黑树的双旋 Map的封装 ​编辑set的…

Python----函数中的说明文档

说明文档:就是一行注释,在每次 定义一个函数后(def XXX(): 的下一行),开发的人写一段注释文字,告诉别人这个函数是干嘛用的。 案例:定义函数的说明文档 ① 定义函数的说明文档 # 1、定义一个…

【洛谷 B2002】Hello,World!(顺序结构)

Hello,World! 题目描述 编写一个能够输出 Hello,World! 的程序。 提示: 使用英文标点符号;Hello,World! 逗号后面没有空格。H 和 W 为大写字母。 输入格式 输出格式 样例 #1 样例输入 #1 无样例输出 #1 Hello,World!思路 #include 是一个预处…

Js中clientX/Y、offsetX/Y和screenX/Y之间区别

Js中client、offset和screen的区别 前言图文解说实例代码解说 前言 本文主要讲解JavaScript中clientX、clientY、offsetX、offsetY、screenX、screenY之间的区别。 图文解说 在上图中,有三个框,第一个为屏幕,第二个为浏览器大小&#xff0c…

16. @PostConstruct注解和开关原理(验证码开关、IP开关)

1►PostConstruct注解 PostConstruct是java自带的注解,会在java项目启动的时候先执行下面的方法 2►开关原理(验证码开关) 我们的项目具有验证码功能,旧版不支持关闭,新版已经支持关闭了。 我们打开页面“参数管…

深信服AC流量管理技术

拓扑图 一.保证通道针对修仙部,访问网站,邮件,DNS,IM,办工 OA,微博论坛网上银行等常见应用保证带宽最低 50%,最高 100% 1. 先新建线路带宽 2.新增流量管理通道(保证关键应用&#x…