如何进行mysql慢查询日志设置以及日志管理与分析

news/2024/12/17 5:14:18/

1、引言

        MySQL的慢查询日志是MySQL提供的一种日志记录功能,它用于记录在MySQL中响应时间超过设定阈值的SQL语句。
        主要作用如下:
        发现性能问题:通过分析慢查询日志,可以找出执行时间较长的SQL语句,从而发现潜在的性能瓶颈。
        优化查询性能:基于慢查询日志的分析结果,可以对SQL语句进行优化,如添加索引、重写SQL语句等,以提高查询效率。
        监控数据库健康:慢查询日志还可以用于监测数据库的运行状态,确保数据库的稳定性和高效性。

2、相关参数与配置

2.1、slow_query_log

        slow_query_log:控制是否开启慢查询日志功能,默认值为OFF(关闭)。要启用慢查询日志,需要将其设置为ON。

        查看慢查询日志功能是否开启,在mysql命令窗口执行:SHOW VARIABLES LIKE '%slow_query_log%';    如下:

mysql> SHOW VARIABLES LIKE '%slow_query_log%';
+---------------------+--------------------------------------+
| Variable_name       | Value                                |
+---------------------+--------------------------------------+
| slow_query_log      | OFF                                  |
| slow_query_log_file | /var/lib/mysql/92a08ceba24b-slow.log |
+---------------------+--------------------------------------+
2 rows in set (0.03 sec)

        在命令窗口执行:set global slow_query_log = 1;   如下:

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

        再次执行SHOW VARIABLES LIKE '%slow_query_log%';如下:

mysql> SHOW VARIABLES LIKE '%slow_query_log%';
+---------------------+--------------------------------------+
| Variable_name       | Value                                |
+---------------------+--------------------------------------+
| slow_query_log      | ON                                   |
| slow_query_log_file | /var/lib/mysql/92a08ceba24b-slow.log |
+---------------------+--------------------------------------+
2 rows in set (0.04 sec)

        查询当前系统中有多少条慢查询记录,在命名窗口执行:show global status like '%Slow_queries%';  如下:

mysql> show global status like '%Slow_queries%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries  | 0     |
+---------------+-------+
1 row in set (0.03 sec)

 2.2、slow_query_log_file

        指定慢查询日志文件的位置和名称。默认情况下,日志文件位于MySQL数据目录下,文件名通常为“主机名-slow.log”。
        指定慢查询日志文件的位置和名称:/var/lib/mysql/localhost-slow.log,再次查看慢日志文件名称和位置已经改变,如下:

mysql> SET GLOBAL slow_query_log_file = '/var/lib/mysql/localhost-slow.log';
Query OK, 0 rows affected (0.01 sec)mysql> SHOW VARIABLES LIKE '%slow_query_log%';
+---------------------+-----------------------------------+
| Variable_name       | Value                             |
+---------------------+-----------------------------------+
| slow_query_log      | ON                                |
| slow_query_log_file | /var/lib/mysql/localhost-slow.log |
+---------------------+-----------------------------------+
2 rows in set (0.09 sec)

   2.3、long_query_time

        定义查询执行时间的阈值,默认值为10秒。只有执行时间超过此阈值的SQL语句才会被记录到慢查询日志中。可以根据需要调整此参数的值,以捕获更多的慢查询。

        查看当前慢查询阈值:SHOW VARIABLES LIKE 'long_query_time%';

mysql> SHOW VARIABLES LIKE 'long_query_time%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.04 sec)

        设置慢查询阈值:SET GLOBAL long_query_time = 5;

mysql> SET GLOBAL long_query_time = 5;
Query OK, 0 rows affected (0.00 sec)

2.4、log_queries_not_using_indexes

         决定是否记录未使用索引的查询,默认值为OFF(关闭)。开启此参数后,可以更容易地发现潜在的索引缺失问题,从而进行优化。

        查询是否开启记录未使用索引的查询,如下:

mysql> SHOW VARIABLES LIKE 'log_queries_not_using_indexes%';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
+-------------------------------+-------+
1 row in set (0.04 sec)

开启记录未使用索引的查询,如下:        

mysql> SET GLOBAL log_queries_not_using_indexes = 1;
Query OK, 0 rows affected (0.00 sec)mysql> SHOW VARIABLES LIKE 'log_queries_not_using_indexes%';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | ON    |
+-------------------------------+-------+
1 row in set (0.07 sec)

       


http://www.ppmy.cn/news/1555779.html

相关文章

大数据相关标准——GB/T 38676-2020信息技术 大数据 存储与处理系统功能测试要求(山东省大数据职称考试)

大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 大数据相关标准…

Rust之抽空学习系列(三)—— 编程通用概念(中)

Rust之抽空学习系列(三)—— 编程通用概念(中) 1、变量&可变性 在Rust中,变量默认是不可变的 fn main() {let x 5;println!("x is {}", x); }使用let来声明一个变量,此时变量默认是不可变…

FastAPI 应用部署与性能优化

FastAPI 应用部署与性能优化 目录 🌐 FastAPI 的性能特点与技术优势🚀 查询优化与高效缓存策略📊 数据库性能调优与最佳实践 🌐 1. FastAPI 的性能特点与技术优势 FastAPI 是近年来备受关注的 Python Web 框架之一,…

MetaGPT中的单智能体Action

目录 单智能体 单Action单智能体 多Action参考链接 单智能体 单Action 定义一个名为SimpleCoder的角色,这个角色可以执行一个名为SimpleWriteCode的动作。这个动作的目的是生成一个Python函数的代码,该函数能够完成给定的任务,并提供两个可运…

uniapp video 安卓小程序seek第一次打开时视频能跳转到指定位置,第二次就没有跳转到指定位置

问题: 1.ios的小程序测试没问题,看完视频再次点击视频就在上一次看到的位置 2.但是安卓第一次进去会在上一次位置,返回上一页再点击视频进去就从头开始 原因: 找了好久是 videoId的问题 ,我写的videoId myVideo ,因…

有根树【东北大学oj数据结构7-1】C语言

创建一个程序,为给定的有根树 T 的每个节点 u 输出以下信息。 u的节点号 u的父节点号 u的深度 u的节点类型(根、内部节点或叶) u的孩子名单 这里我们假设给定的树有n个节点,每个节点都分配了一个从0到n-1的数字。 输入 输入的第…

WPF+MVVM案例实战与特效(三十八)- 封装一个自定义的数字滚动显示控件

文章目录 1、运行效果2、案例实现1、功能设计2、页面布局3、控件使用4、运行效果3、拓展:多数字自定义控件1、控件应用4、总结1、运行效果 在Windows Presentation Foundation (WPF)应用程序中,自定义控件允许开发者创建具有特定功能和外观的独特UI元素。本博客将介绍一个名…

Python 命令搭建 Https的服务器

要使用Python命令行搭建HTTPS服务器,您可以使用http.server模块(在Python 3.x中可用),并结合ssl模块来创建安全的HTTPS连接。以下是一个简单的步骤指南: 准备证书: 在搭建HTTPS服务器之前,您需要…