导读:本期聚焦于小伙伴创作的《mysql5.7如何开启慢查询日志?怎么配置slow_query_log参数》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《mysql5.7如何开启慢查询日志?怎么配置slow_query_log参数》有用,将其分享出去将是对创作者最好的鼓励。

mysql5.7的慢查询日志用于记录执行时间超过指定阈值的sql语句,是数据库性能优化过程中不可或缺的工具,通过配置slow_query_log相关参数可以灵活开启和管理慢查询日志。

mysql5.7如何开启慢查询日志?怎么配置slow_query_log参数

慢查询日志相关核心参数说明

在配置之前需要先了解几个和慢查询日志相关的核心参数,这些参数共同决定了慢查询日志的工作状态:

  • slow_query_log:控制慢查询日志是否开启,取值为ON表示开启,OFF表示关闭,默认值为OFF。
  • slow_query_log_file:指定慢查询日志的存储路径和文件名,默认路径为mysql的数据目录。
  • long_query_time:设置慢查询的时间阈值,单位是秒,执行时间超过该值的sql会被记录到慢查询日志中,默认值为10秒。
  • log_queries_not_using_indexes:设置为ON时,未使用索引的查询也会被记录到慢查询日志中,默认值为OFF。

临时开启慢查询日志(重启后失效)

如果只需要临时开启慢查询日志进行测试,不需要永久生效,可以通过sql语句直接修改全局参数,这种方式不需要重启mysql服务,但mysql重启后配置会恢复默认值。

步骤1:查看当前慢查询配置状态

先执行以下语句查看当前慢查询相关的参数配置:

-- 查看慢查询日志是否开启
SHOW GLOBAL VARIABLES LIKE 'slow_query_log';
-- 查看慢查询时间阈值
SHOW GLOBAL VARIABLES LIKE 'long_query_time';
-- 查看慢查询日志存储路径
SHOW GLOBAL VARIABLES LIKE 'slow_query_log_file';

步骤2:开启慢查询日志并设置参数

执行以下语句开启慢查询日志,同时设置时间阈值为2秒,日志路径为自定义路径:

-- 开启慢查询日志
SET GLOBAL slow_query_log = 'ON';
-- 设置慢查询时间阈值为2秒,超过2秒的查询会被记录
SET GLOBAL long_query_time = 2;
-- 设置慢查询日志存储路径,路径需要根据实际mysql运行环境调整
SET GLOBAL slow_query_log_file = '/var/lib/mysql/slow_query.log';
-- 可选:开启未使用索引的查询记录
SET GLOBAL log_queries_not_using_indexes = 'ON';

步骤3:验证配置是否生效

配置完成后可以执行一条睡眠超过阈值的sql语句,检查慢查询日志是否生成对应记录:

-- 执行睡眠3秒的语句,超过设置的2秒阈值,应该被记录到慢查询日志
SELECT SLEEP(3);

之后查看设置的slow_query_log_file路径下的文件,如果存在对应的查询记录,说明临时配置生效。

永久开启慢查询日志(重启后生效)

如果需要慢查询日志在mysql重启后依然保持开启状态,需要修改mysql的配置文件,不同系统的配置文件路径略有差异,linux系统一般是/etc/my.cnf或者/etc/mysql/my.cnf,windows系统一般是mysql安装目录下的my.ini。

步骤1:编辑配置文件

在配置文件的[mysqld]模块下添加以下配置内容:

[mysqld]
# 开启慢查询日志
slow_query_log = ON
# 慢查询日志存储路径,根据实际环境调整
slow_query_log_file = /var/lib/mysql/slow_query.log
# 慢查询时间阈值,单位秒
long_query_time = 2
# 可选:记录未使用索引的查询
log_queries_not_using_indexes = ON

步骤2:重启mysql服务

修改完配置文件后需要重启mysql服务让配置生效,不同系统的重启命令如下:

-- linux系统使用systemctl重启
systemctl restart mysqld
-- 或者旧版本linux使用service命令
service mysql restart
-- windows系统可以在服务管理器中重启mysql服务,或者使用命令行
net stop mysql
net start mysql

步骤3:验证永久配置

重启完成后再次执行查看参数的sql语句,确认参数值已经变为配置文件中设置的值,同时可以执行测试sql验证日志是否正常记录。

慢查询日志的注意事项

  • 慢查询日志会占用一定的磁盘空间,需要定期清理过期的日志文件,避免磁盘空间被占满。
  • long_query_time参数支持小数点后多位精度,比如设置为0.5表示记录执行超过0.5秒的查询。
  • 如果slow_query_log_file指定的路径不存在,mysql启动时会报错,需要提前创建好目录并赋予mysql进程写入权限。
  • 生产环境建议根据实际业务情况调整时间阈值,避免阈值设置过小导致日志量过大,或者阈值过大导致漏记慢查询。

mysql5.7slow_query_log慢查询日志数据库优化修改时间:2026-06-30 00:21:28

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。