配置Mysql的慢查询日志

news2024/9/21 5:10:46

一、什么是Mysql慢查询日志

  • MySQL慢查询日志是MySQL数据库自带的一个功能,用于记录执行时间超过指定阈值的SQL语句,以便于后续的性能优化工作

  • 帮助开发和DBA发现哪些SQL语句需要优化,在哪些地方需要修改,以提高数据库的性能

  • 默认情况下MySQL数据库是不开启慢查询日志的,long_query_time 的默认值为10(即10秒,通常设置为1秒)

二、配置开启Mysql慢查询日志

配置慢查询日志之前,我们可以先查看一下默认情况下慢查询日志的开启情况:

show variables like 'slow%'

09889c4110c3470cb7fd70b2ecf0f6d1.png

可以看到默认情况下 slow_query_log 属性是OFF,处于关闭状态

开启慢查询日志有两种方式

第一种是通过set 语句来开启,这种方式 mysql服务重启的话,配置会失效

第二种是通过配置文件的方式来开启,这种方式是永久生效的,mysql重启也不影响

1、通过set 语句来开启慢查询日志

  • 开启慢查询日志:
set global slow_query_log = on
  • 自定义慢查询日志文件的存放路径:
set global slow_query_log_file = '自定义路径'
  • 设置慢查询时间阈值:

开启了慢查询日志后,还需要设置一下慢查询的时间阈值,就是配置一下你认为多慢才算慢查询

先通过以下语句来看下 这个时间默认是多久:

show variables like '%long%'

20972b4732544552ad136f4c93b61e2e.png

可以看到,long_query_time 属性,默认值为10.000000,表示只记录查询时间在10秒以上的语句

所以这个时间咱们需要自定义的配置一下,那一般配置多久合理呢?

一般情况下,数据不多的话,慢查询的临界值设置为0.02秒比较合理

但是如果数据里比较大的话,一般超过500毫秒,也就是0.5秒就算慢查询

所以,咱们可以通过以下语句,来先把这个时间设置为0.02秒

set long_query_time=0.02

2、通过配置文件的方式来开启慢查询日志

进入mysql的配置文件进行配置

vim /mydata/mysql/conf/my.cnf

把下面的配置复制进去

[mysqld]
slow_query_log = 1
long_query_time = 0.1
slow_query_log_file =/usr/local/mysql/mysql_slow.log

重启mysql生效

docker restart mysql

注意:有可能重启后,发现其他两项都生效了,但是slow_query_log 属性仍然是OFF

这有可能是你自定义指定的慢查询日志文件没读写权限,chmod 赋一下权限就可以了

好了,配置好之后,再通过命令,看下配置好之后的状态

f75aaca0e69147ee878e874f39dbafb3.png

5116bf376a4946ed89735651e12d2215.png

三、模拟慢查询,看记录慢查询日志是否生效

  • 执行sql语句,来模拟慢查询
select sleep(2);
select sleep(5);
  • 进入容器查看 慢查询是否记录到日志文件里了
docker exec -it mysql /bin/bash

使用cat 来查看日志文件

cat /usr/local/mysql/mysql_slow.log

efc9de9044bb4b19b093c67b186c028e.png

可以看到,超过咱们配置的0.1秒的sql语句都会被记录到指定的慢查询日志文件里

下面来简单的解读一下这个日志文件的大概内容

Time: 表示日志记录的时间。格式为 ISO8601 标准的 UTC 时间。

User@Host: 表示执行该SQL语句的用户和主机名。

Id: 表示线程 ID,是一个整数表示。

Query_time: 表示 SQL 语句的执行时间,以秒为单位。

Lock_time: 表示在执行 SQL 语句期间等待锁定资源的时间。如果 SQL 语句没有使用锁,则为 0。

Rows_sent: 表示 SQL 语句返回的行数。

Rows_examined: 表示查询过程中扫描的行数。如果 SQL 语句没有执行查询操作,则该值为 0。

timestamp: 表示该 SQL 语句的执行时间戳,以秒为单位。

sql语句: 实际执行的SQL语句。

 

ok,到这里就配置好了mysql的慢查询日志

记录了慢查询的sql后,就可以定期的去查看,去分析一下这些sql为什么慢的原因,那怎么具体的分析慢查询的sql语句呢?下一篇我会详细讲一下mysql中的explain执行计划,用explain里的内容就可以大致分析出这个sql查询的质量高不高,以及怎么去加索引优化

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

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

相关文章

【Hot100】LeetCode—51. N 皇后

原题链接:51. N 皇后 1- 思路 使用回溯的方式实现,回溯三部曲 数据结构:定义三维数组,收集结果1- 回溯终止条件:如果遍历到 row n-1 此时就是结果收集的时刻2- 执行 for 循环遍历,执行递归和回溯 2- 实现…

【Linux】系列入门摘抄笔记-3-系统管理、显示相关命令

系统管理、显示相关命令 shutdown/关机和重启 sync 数据同步:把内存中的数据强制向硬盘中保存。不放心的话,应该在关机或重启之前手工执行几次,避免数据丢失。 shutdown [选项] 时间 [警告信息] shutdown -h now shutdown -h 05:30 shutdown -h 5 (5分钟后关机)reb…

计算机毕业设计选题推荐-视频点播系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

ubuntu安装微信

ubuntu安装微信 微信特性 可以截图无聊天乱码 安装指南 输入下面命令 wget -c -O atzlinux-v12-archive-keyring_lastest_all.deb https://www.atzlinux.com/atzlinux/pool/main/a/atzlinux-archive-keyring/atzlinux-v12-archive-keyring_lastest_all.debsudo apt -y insta…

全国不动产登记技能竞赛有哪些奖项

(一)个人综合奖 个人综合奖在参加代表展示的选手中产生。 1.对获得全国决赛第1名的选手,符合条件的,按程序向中华全国总工会推荐申报“全国五一劳动奖章”。 2.对获得全国决赛前15名的选手,由竞…

【Vue】vue3中通过自定义指令实现数字的动态增加动画

在Vue 3中通过自定义指令实现数字的动态增加动画,可以利用Vue的自定义指令功能,这允许你扩展Vue的内置指令,使得DOM操作更加灵活和强大。以下是如何创建一个自定义指令来实现数字动态增加动画的步骤: 效果演示 代码实现 1、定义指…

四种推荐算法——Embedding+MLP、WideDeep、DeepFM、NeuralCF

一、EmbeddingMLP模型 EmbeddingMLP 主要是由 Embedding 部分和 MLP 部分这两部分组成,使用 Embedding 层是为了将类别型特征转换成 Embedding 向量,MLP 部分是通过多层神经网络拟合优化目标。——用于广告推荐。 Feature层即输入特征层,是模…

【C++】string类——模拟实现

🚀个人主页:奋斗的小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、string类主要函数接口💥2、string类的模拟实现💥2.1 构造和析构…

【Material-UI】FormGroup 组件:多选框分组的最佳实践详解

文章目录 一、FormGroup 组件概述1. 组件介绍2. 组件的基本结构 二、FormGroup 的关键特性1. 逻辑分组2. 状态管理3. 错误处理 三、FormGroup 的实际应用场景1. 多选项管理2. 逻辑验证3. 用户偏好设置4. 表单提交 四、注意事项1. 无障碍支持2. 样式定制 五、总结 在 Material-U…

AWVS下载安装使用教程图文教程(超详细)

《网络安全自学教程》 AWVS(Acunetix Web Vulnerability Scanner)是一款常用的Web网站漏洞扫描工具。 AWVS扫描时,对数据库有增删改的操作,部分渗透项目禁止使用,在实际环境中需要注意。 这篇文章使用 Windows Serve…

30个UI设计师应该掌握的专业术语

每个领域都有自己的专有名词和术语,掌握它们才能更好地和工作伙伴沟通。作为一名资深UI设计师,我整理了以下30个UI设计师应该掌握的专业术语,希望能帮助大家更好地理解和运用这些概念。 这些术语包含三大类:基础名词、常用UI设计…

藏品管理系统的流程

1、文物征集: - 通过购买、捐赠、交换、考古发掘等方式征集文物。 征集过程中需遵守国家法律法规和相关规定。 2、文物鉴定: - 对新发现的文物和征集的文物进行专业鉴定,确定其是否具有历史、艺术、科学价值。 3、 文物登记&…

【吊打面试官系列-Elasticsearch面试题】详细描述一下 Elasticsearch 索引文档的过程?

大家好,我是锋哥。今天分享关于 【详细描述一下 Elasticsearch 索引文档的过程?】面试题,希望对大家有帮助; 详细描述一下 Elasticsearch 索引文档的过程? 协调节点默认使用文档 ID 参与计算(也支持通过 routing)&am…

个人经典例程与研究方向总目录

🎁 私信可获得仿真数据、论文与建模的仿真定制 👇 订阅本人任意付费专栏的朋友,均可私信,免费获取一维EKF/UKF的MATLAB例程 目前的研究方向 1 导航与定位 卡尔曼滤波跟踪、二维三维轨迹计算、平面立体目标跟踪、 2 智能算法方面…

顶顶通手机助手拦截方案

现在很多品牌的手机,都自带语音助手,比如我用的是小米手机,就自带小爱助手,可以自动接听各种广告营销电话。如果来电号码被标记为广告营销,小爱助手就会自动应答,然后模拟真人进行对话。 现在自动外呼系统拨…

二次注入(sql靶场第24关+网鼎杯comment二次注入+网鼎杯-2018-Web-Unfinish)

目录 二次注入 sql靶场第24关 网鼎杯comment二次注入 网鼎杯-2018-Web-Unfinish 二次注入 sql靶场第24关 二次注入我觉得是特别有意思,首先依然是查看页面 可以看出来这一关十分的丰富,可以注册,修改和登录,那我们先试着注册…

工地云SaaS系统,通过物联网与可视化等先进技术的综合应用,搭建的智慧工地管理云平台源码

通过物联网与可视化等先进技术的综合应用,搭建智慧工地管理云平台。以绿色、安全施工管理为主线,从人员、设备、环境、监控#度管理、施工管理、工程管理等多个维度对现场要素进行信息化,实现数据实时更新、人员精确管理、风险及时预警、管理便…

六,业务功能:登录

六,业务功能:登录 文章目录 六,业务功能:登录编写 AuthController 作为登录控制器编写 EmpService 业务处理编写 target.html 登录成功页面显示启动 Tomcat 服务器,运行测试 编写 AuthController 作为登录控制器 在 d…

【区块链+社会公益】人民链数字福虎 | FISCO BCOS应用案例

人民链在 2022 年春节期间发起保护生物多样性的公益活动——“数字福虎迎新春”,通过区块链技术,探索迎新 春 新公益,助力保护“生物多样性”。 由人民在线开发的人民链客户端定位为“口袋里的大数据管 家”,通过“超级 ID”数字…

redis面试(九)锁重入和互斥

可重入 1)如果一开始这个锁是没有的,第一次来加锁,这段lua脚本会如何执行? "if (redis.call(‘exists’, KEYS[1]) 0) then " "redis.call(‘hset’, KEYS[1], ARGV[2], 1); " "redis.call(‘pexpi…