MySQL慢查询日志是定位性能瓶颈最直接有效的手段,通过设置slow_query_log、long_query_time等参数可临时或永久开启,支持FILE或TABLE输出,配合mysqldumpslow分析优化。

MySQL慢查询日志是定位性能瓶颈最直接有效的手段之一,开启后能记录执行时间超过指定阈值的SQL语句,便于后续分析优化。
确认当前慢查询日志状态
登录MySQL后,先检查是否已启用及配置参数:
- SHOW VARIABLES LIKE 'slow_query_log'; —— 查看是否开启(ON/OFF)
- SHOW VARIABLES LIKE 'long_query_time'; —— 查看慢查询阈值(单位:秒,默认10秒)
- SHOW VARIABLES LIKE 'slow_query_log_file'; —— 查看日志文件路径
临时开启(重启失效)
适合测试或紧急排查,无需修改配置文件:
- SET GLOBAL slow_query_log = ON;
- SET GLOBAL long_query_time = 1;(建议设为1秒便于捕获更多可疑SQL)
- SET GLOBAL log_output = 'FILE';(可选,支持 FILE 或 TABLE;TABLE方式需配合 mysql.slow_log 表)
永久开启(推荐生产环境使用)
编辑MySQL配置文件(如 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf),在 [mysqld] 段落下添加:
CRMEB Min是CRMEB品牌全新推出的一款轻量级、高性能、前后端分离的开源电商系统,完善的后台权限管理、会员管理、订单管理、产品管理、客服系统、CMS管理、多端管理、页面DIY、数据统计、系统配置、组合数据管理、日志管理、数据库管理,一键开通短信、产品采集、物流查询等接口,系统采用TP6+Mysql+Uniapp+iView+Redis+workerman+form-builder等最流行热
- slow_query_log = ON
- slow_query_log_file = /var/log/mysql/mysql-slow.log(确保目录存在且MySQL用户有写权限)
- long_query_time = 1
- log_queries_not_using_indexes = OFF(按需开启,避免日志爆炸;若要分析索引缺失问题可设为ON)
保存后重启MySQL服务:systemctl restart mysqld(或 service mysql restart)
验证与查看日志
执行一条明显慢的SQL(如 SELECT SLEEP(2);),再检查日志文件是否生成对应记录:










