MYSQL慢日志

MySQL的慢查询日志(Slow Query Log)可以帮助数据库管理员识别执行时间较长的SQL语句。通过分析这些慢查询,可以发现性能瓶颈并采取相应的优化措施。

启用慢查询日志,需要在MySQL配置文件(通常是my.cnfmy.ini)中设置相关参数,或者直接在运行时使用SET命令来修改。

复制代码
mysql> show variables like '%slow_query_log%';
+---------------------+-----------------------------------------+
| Variable_name       | Value                                   |
+---------------------+-----------------------------------------+
| slow_query_log      | OFF                                     |
| slow_query_log_file | D:\develop\...\LAPTOP-3JODIVUS-slow.log |
+---------------------+-----------------------------------------+
2 rows in set, 1 warning (0.02 sec)

mysql> show variables like '%long_query%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set, 1 warning (0.00 sec)

配置文件设置

复制代码
[mysqld]
slow_query_log = 1  # 开启慢查询日志
slow_query_log_file = /path/to/your/slow-query.log  # 指定日志文件路径
long_query_time = 2  # 设置阈值,默认单位是秒
log_queries_not_using_indexes = 1  # 记录没有使用索引的查询
  • slow_query_log:开启慢查询日志功能。
  • slow_query_log_file:指定慢查询日志文件的存储位置。
  • long_query_time:定义了查询需要多长时间才被记录到慢查询日志中。默认单位是秒,也可以设置为毫秒。
  • log_queries_not_using_indexes:如果设置为1,那么所有不使用索引的查询都将被记录,无论它们是否超过了long_query_time

运行时设置

在 MySQL 服务器运行时通过 SQL 命令临时更改设置

复制代码
# 全局开启
SET GLOBAL slow_query_log = 'ON';
# 指定路径和名称
SET GLOBAL slow_query_log_file = 'D:\\slow-query-log.log';
# 调整时间阈值
SET GLOBAL long_query_time = 3;
# 记录未使用索引的查询
SET GLOBAL log_queries_not_using_indexes = 'ON';

查看和分析慢查询日志

一旦开启了慢查询日志,并且有一些慢查询被记录下来后,可以使用文本编辑器打开日志文件查看内容。通常会使用一些专门的工具来分析这些日志,例如mysqldumpslowpt-query-digest(Percona Toolkit的一部分)等。

  • mysqldumpslow:MySQL 自带的简单工具,可以用来汇总慢查询日志中的数据。
  • pt-query-digest:更强大的工具,可以从慢查询日志中提取出详细的统计信息,并生成报告。

相关命令:

复制代码
//查看慢查询日志是否开启
SHOW VARIABLES LIKE '%slow_query_log%';
//查看时间阈值:
SHOW VARIABLES LIKE 'long_query_time%';
相关推荐
ByteBlossom41 分钟前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
玉衡子44 分钟前
九、MySQL配置参数优化总结
java·mysql
-Xie-1 小时前
Mysql杂志(十六)——缓存池
数据库·mysql·缓存
玉衡子1 小时前
八、MySQL全局优化总结&MySQL8新特性
java·mysql
计算机毕业设计木哥2 小时前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计
会飞的架狗师19 小时前
【MySQL体系】第1篇:从MySQL架构原理到存储的解析
后端·mysql
BXCQ_xuan19 小时前
软件工程实践四:MyBatis-Plus 教程(连接、分页、查询)
spring boot·mysql·json·mybatis
玉衡子20 小时前
七、InnoDB底层原理与日志机制
java·mysql
cyforkk21 小时前
MySQL 唯一约束:从基础到实战,解决数据重复的核心工具
数据库·mysql
快乐肚皮21 小时前
SQL调优全攻略:从原理到实战
mysql