MySql5.6版本开启慢SQL功能-本次采用永久生效方式

这篇具有很好参考价值的文章主要介绍了MySql5.6版本开启慢SQL功能-本次采用永久生效方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySql5.6版本开启慢SQL功能-本次采用永久生效方式,使用数据库相关,sql,数据库,MySql5.6开启慢SQL,开启慢SQL功能,MySql开启慢SQL,mysql

一、目的

开启 MySQL 的慢查询日志(Slow Query Log)可以帮助你分析和优化数据库中的慢查询语句。通过记录执行时间超过阈值的 SQL 查询,慢查询日志能够提供以下用途:

  1. 性能优化: 慢查询日志能够帮助你找出执行时间较长的 SQL 查询语句,以及执行次数较多的查询。通过分析这些慢查询语句,你可以定位到导致性能瓶颈的代码块或者查询操作,进而对其进行优化,提高数据库的响应性能。
  2. 发现问题查询: 慢查询日志可以捕获执行时间较长的查询,帮助你发现潜在的性能问题、高查询负载或者设计不合理的查询语句。通过对慢查询日志的监控,你可以及时识别并修复这些问题,确保数据库的稳定性和可靠性。
  3. 优化索引: 慢查询日志可以揭示缺乏合适索引的查询语句。通过分析慢查询日志,你可以确定需要创建或优化的索引,提高查询的效率和性能。
  4. 监控查询情况: 通过定期分析慢查询日志,你可以了解数据库的查询模式和查询趋势。这有助于对系统性能进行长期监控,优化数据库设计和查询规划。

请注意,在生产环境中开启慢查询日志需要谨慎,因为它会产生额外的磁盘 I/O 和日志记录开销。你可以根据具体情况和需求来选择是否开启和设置合适的阈值。

二、注意点说明

  1. open_the_slow_sql_configuration_file.sh脚本就是开启MYSQL5.6版本的慢SQL功能的Shell脚本。
  2. 要想让此Shell脚本功能生效,必要前提就是生成慢SQL的日志存放路径文件夹必须先存在才行,比如脚本中配置slowSqlLogPath=/var/log/mysql,我必须先确保/var/log/mysql文件夹存在情况下,然后才能去重启网管服务让其生效。
  3. 单独只重启mysql服务不会生效,必须重启网管服务才可以。
  4. 该脚本一次只会固定产生一个类似叫slow_query_20230714.log日志文件,不会每天动态生成,所以如果想记录当天的慢SQL请在重启网管服务前有限执行一遍Shell脚本。
  5. 临时生效操作步骤只在当前已经启动中的mysql服务中生效,如果mysql服务重启了就失效了。
  6. 永久生效操作步骤,无论网管重启多少次都有效,但是不会每天动态创建一个对应日期的日志文件记录,只会存放于一个固定的日志名称中。
  7. 当前脚本只针对MySql5.6版本,不同版本脚本命令可能会有细微差别,需要定制化开发。
  8. linux修改配置文件为安装mysql下的配置文件叫my.cnf。
  9. windows服务器下和linux服务器下修改的文件名称不一样,我这个博客只针对需改Linux下mysql。

三、操作步骤

3.1 临时生效操作步骤

注意:不需要重启mysql服务,直接修改后生效。
第1步:先在服务器创建存放慢SQL日志文件夹的路径,确保路径存在再执行第2步。

第2步:执行sql,设置为 ON 表示启用慢查询日志。

set global slow_query_log=ON;

第3步:执行sql,指定执行时间多少秒以上的查询将被视为慢查询。在上述示例中,查询时间超过 10 毫秒的查询将被记录。

set global long_query_time=0.01

第4步:执行sql,指定日志文件的路径和名称。您可以根据实际需求更改路径和名称。

set global slow_query_log_file='/var/log/mysql/slow_query_20230713.log'

3.2 永久生效操作步骤

注意:需要重启mysql服务,但是生成的存放慢SQL的日志文件只有一个。
第1步:先将慢SQL开启脚本open_the_slow_sql_configuration_file.sh上传服务器某个路径下,进入该路径,并执行授权命令:

chmod  777  open_the_slow_sql_configuration_file.sh

第2步:先修改open_the_slow_sql_configuration_file.sh脚本中的日志存放路径slowSqlLogPath属性值。

第3步:根据第2步的存放路径在服务器创建文件夹,确保路径文件夹存在情况下再执行第3步。

第4步:重启网管服务让慢SQL功能生效。

3.3 按日期生成日志文件

注意:需要重启mysql服务,执行Shell脚本后需要重启网管,效果是重启后生成当天日期对应的日志文件。
第1步:执行Sell脚本,进入存放的目录中执行命令:

./open_the_slow_sql_configuration_file.sh

第2步:重启网管服务让慢SQL功能生效。

3.4 执行成功后验证功能是否开启

服务器连接登录mysql或者在数据库连接软件中执行相应sql,查看结果,如果结果都是你刚刚配置的,那就说明功能已开启且配置正确:

这是一个计数器,表示自 MySQL 服务器启动以来发生的慢查询数量。

show global status like '%slow_queries%';

MySql5.6版本开启慢SQL功能-本次采用永久生效方式,使用数据库相关,sql,数据库,MySql5.6开启慢SQL,开启慢SQL功能,MySql开启慢SQL,mysql

这是一个计时器,表示自 MySQL 服务器启动以来所有慢查询执行所花费的总时间(以秒为单位)。

show global variables like 'long_query_time';

MySql5.6版本开启慢SQL功能-本次采用永久生效方式,使用数据库相关,sql,数据库,MySql5.6开启慢SQL,开启慢SQL功能,MySql开启慢SQL,mysql

这是一个配置参数,表示被认为是慢查询的最小执行时间阈值。默认情况下,它的值是 10 秒,意味着执行时间超过 10 秒的查询将被记录为慢查询。您可以根据需求调整此值。

show variables like '%slow_query_log%';

MySql5.6版本开启慢SQL功能-本次采用永久生效方式,使用数据库相关,sql,数据库,MySql5.6开启慢SQL,开启慢SQL功能,MySql开启慢SQL,mysql

四、慢SQL日志记录内容介绍

Tcp port: 18753  Unix socket: /home/ems/3rdparty/mysql/mysql.sock
Time                 Id Command    Argument
# Time: 230714 14:11:08
# User@Host: herounms[herounms] @  [10.161.29.105]  Id:     6
# Query_time: 0.306785  Lock_time: 0.020101 Rows_sent: 0  Rows_examined: 1393
use lte_ems;
SET timestamp=1689315068;
update lte_ems.monitor_sys_log
         SET STATUS = 1 
        where PRODUCT = 'PLATFORM'
        and STATUS = 0
        and LOG_TYPE = 'start';

参数介绍:

  • Time:代表sql的执行时间
  • User:代表哪个用户在哪台服务器上执行的
  • Query_time:慢查询语句的查询时间
  • Lock_time:锁表时间
  • Rows_sent:返回客户端的行数扫描过的行数
  • Rows_examined:导致慢查询的sql_text

五、Shell脚本

open_the_slow_sql_configuration_file.sh文章来源地址https://www.toymoban.com/news/detail-595517.html

#!/bin/bash
# Open the slow sql configuration file

# Open slow SQL switch
sed -i "s|slow_query_log = .*|slow_query_log = ON|" /home/ems/3rdparty/mysql/my.cnf
echo "Configuration slow_query_log complete!"

# Set the current date to the log name
current_date=$(date +%Y%m%d)
slowSqlLogPath=/var/log/mysql
sed -i "s|slow_query_log_file = .*|slow_query_log_file = $slowSqlLogPath/slow_query_$current_date.log|" /home/ems/3rdparty/mysql/my.cnf
echo "Configuration slow_query_log_file complete!"

# Queries that take longer than a specified number of seconds to execute are considered slow
sed -i "s|long_query_time = .*|long_query_time = 0.01|" /home/ems/3rdparty/mysql/my.cnf
echo "Configuration long_query_time success!"

echo "Configuration Complete!"

到了这里,关于MySql5.6版本开启慢SQL功能-本次采用永久生效方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql5.7开启SSL并且支持Springboot客户端验证

    前提:已安装好数据库,这里以mysql5.7为例 例如:数据库用户名root   密码:123456 数据库data目录:/usr/local/mysql/data  登录mysql命令:mysql -uroot -p  输入密码:123456 一、查看服务端mysql环境 1.查看是否开启了ssl,\\\"have_ssl\\\" 为YES的时候,数据库是开启加密连接方式的 2.查看数据库版

    2024年02月09日
    浏览(42)
  • Ubuntu环境下安装部署mysql5.7&开启远程访问连接&修改数据存放位置&卸载mysql

    本文档适用于在Ubuntu20.04系统下部署mysql5.7,是有网的情况下。 提供了两种安装mysql5.7的方法,并且还讲解了开启mysql远程访问权限,允许远程连接;以及讲解了如何修改数据库数据的存放路径。 1.确认目前服务器上是否存在MySQL 如出现如图所示,提示没有rpm命令,我们需要安

    2024年02月05日
    浏览(40)
  • mysql基础 - mysql5.7版本安装

    本文章是学习mysql5.7版本的安装教程

    2024年02月09日
    浏览(47)
  • 安装指定版本的mysql(mysql5.7)

    安装软件的三种方式: rpm 安装 源代码编译安装 yum仓库安装 本地光盘 阿里云yum源 自建yum仓库文件夹 去mysql官网 寻找该软件下的地址,设置为yum仓库即可(可指定版本) 先检查是否自带了mysql 有的话 mariadb同理 有的话 https://repo.mysql.com/yum/ 找到对应版本 例如5.7 https://repo.m

    2024年02月08日
    浏览(44)
  • 安装指定版本的mysql(安装mysql5

    安装软件的三种方式: rpm 安装 源代码编译安装 yum仓库安装 本地光盘 阿里云yum源 自建yum仓库文件夹 去mysql官网 寻找该软件下的地址,设置为yum仓库即可(可指定版本) 先检查是否自带了mysql 有的话 mariadb同理 有的话 https://repo.mysql.com/yum/ 找到对应版本 例如5.7 https://repo.m

    2024年02月08日
    浏览(72)
  • MySQL5.5版本安装详细讲解

    1.打开下载的安装文件,出现如下界面,mysql安装向导启动,点击“next”继续 2.同意协议,点击“next”继续 3.选择安装类型 1.Typical----默认安装 2.Custom----完全安装 3.Complete----用户自定义安装 4.点击“Install”开始安装。 5.正在安装 6.MySQL安装完成 7.配置MySQL 8.选择配置方式 9.选

    2024年02月22日
    浏览(36)
  • mysql8.0版本降到5.7版本(下载配置mysql5.7压缩包版本)

    目录 一、前言 二、官网下载与解压 三、配置环境变量 四、检查测试当前MySQL版本 五、获取资源 在部署项目的时候,有时候8.0版本的MySQL就会报错,这个时候就要换MySQL的版本了,5.7的版本还是比较稳定的。 1. 去到MySQL的官网进行下载mysql5.7的压缩包 官网压缩包:MySQL :: Dow

    2024年04月12日
    浏览(46)
  • MySQL5.7源码编译Debug版本

    编译环境Ubuntu22.04LTS https://dev.mysql.com/downloads/mysql/?spm=a2c6h.12873639.article-detail.4.68e61a14ghILh5 cmake clang pkg-config perl 参考:https://dev.mysql.com/doc/refman/5.7/en/source-installation-prerequisites.html 通过文件读取安装 参考:https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html 编译MySQL的deb

    2024年02月14日
    浏览(32)
  • MySQL5.7服务器 SQL 模式

      官网地址:MySQL :: MySQL 5.7 Reference Manual :: 5.1.10 Server SQL Modes 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. MySQL 5.7 参考手册  /  ...  /  服务器 SQL 模式 5.1.10 服务器 SQL 模式 MySQL服务器可以在不同的SQL模式下运行,并且可以根据系统变量的值对不

    2024年02月03日
    浏览(38)
  • 系统在已经安装mysql8.0版本后想要安装mysql5.7版本

    温馨提示:本篇文章在已经安装了mysql8.0版本的基础上进行,并且最终为8.0版本与5.7版本同时 存在 电脑已经安装了8.0版本的,但是因为项目需要,就想要再安装一个5.7版本的数据库,踩坑太多。。。写下这篇文章希望对有同样烦恼的友友们有帮助。 步骤如下: 1.官网下载想

    2024年02月09日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包