MySQL默认不开启慢查询日志且long_query_time默认10秒,需SET GLOBAL动态启用并设为浮点数(如1.0),生产环境必须写入my.cnf的mysqld段并重启生效,配合mysqldumpslow分析日志。如何设置 slow_query_log 和 long_query_timeMySQL 安装完默认不开启慢查询日志,long_query_time 通常默认是 10 秒,对线上服务来说完全没用。必须手动启用并调低阈值才能捕获真实慢 SQL。先确认当前状态:SHOW VARIABLES LIKE 'slow_query_log'; 和 SHOW VARIABLES LIKE 'long_query_time';动态开启(重启不丢失需写入配置文件):SET GLOBAL slow_query_log = 'ON';设阈值为 1 秒:SET GLOBAL long_query_time = 1.0;(注意:必须是浮点数,1 会被当整型忽略)日志路径默认由 slow_query_log_file 决定,建议显式指定,比如:SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';?? 重点:long_query_time 是针对单条语句执行时间,不包含锁等待、网络传输等;且在事务中,只有 COMMIT 或语句真正执行完成才判定,BEGIN 后的语句不单独计时。my.cnf 中必须配置的几项仅靠 SET GLOBAL 是临时的,MySQL 重启就失效。生产环境必须写进配置文件,否则监控会断档。在 mysqld 段落添加:slow_query_log = ONslow_query_log_file = /var/log/mysql/mysql-slow.log(确保 MySQL 进程有写权限)long_query_time = 1.0(再次强调小数点)可选但推荐:log_queries_not_using_indexes = ON,方便发现缺失索引的查询(但会显著增加日志量)改完配置后必须重启 MySQL:systemctl restart mysqld(或 mysqld_safe 方式),仅 reload 不生效。用 mysqldumpslow 快速分析慢日志原始慢日志是纯文本,直接 tail -f 看效率低。MySQL 自带的 mysqldumpslow 能聚合统计,是日常巡检首选工具。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
相关推荐
兵慌码乱4 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析金銀銅鐵5 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程FreakStudio9 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发用户03321266636710 小时前
使用 Python 从零创建 Word 文档Csvn15 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定曲幽16 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了用户5569188175318 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录倔强的石头_19 小时前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化