MySQL 慢查询日志怎么开:两个参数加一个汇总工具

直接答案:开启 MySQL 慢查询日志核心就两个参数——slow_query_log 开开关,long_query_time 定阈值(单位秒);配合 mysqldumpslow 把日志汇总排序,慢 SQL 的病灶基本一抓一个准。

开启三步

  1. 看现状:SHOW VARIABLES LIKE 'slow_query%' 确认当前开关与日志文件路径。2. 动态开启(不用重启):SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 1;——阈值按业务定,一般 OLTP 系统从 1 秒起步,要求高的设 0.5 秒。3. 落到配置文件:my.cnf 的 [mysqld] 段加 slow_query_log=ON、slow_query_log_file=/var/log/mysql/slow.log、long_query_time=1,重启后不丢。改完跑一条带 SLEEP(2) 的测试语句验证日志真的在记。

看日志与汇总分析

原始日志一条记录包含执行时间、锁等待、发送行数、SQL 原文,量大了肉眼看不过来。用自带工具汇总:mysqldumpslow -s t -t 10 slow.log 列出总耗时最高的前 10 条,-s c 按出现次数排、-s at 按平均耗时排——同一个 SQL 出现几百次和跑一次跑十秒,是两种不同的病,排序维度要按场景换。

两个配套开关

log_queries_not_using_indexes = ON 可以把没走索引的查询也记进来(哪怕它没超阈值)——索引漏建是慢查询最大来源,这个开关经常比阈值本身更有用;副作用是日志量增大,开之前确认磁盘余量,配合日志轮转用。

养成节奏

慢日志开着不用一直盯着:每周汇总一次 Top 10,逐条 EXPLAIN 复盘,索引该补补、写法该改改——慢查询治理是持续的小手术,不是一次大扫除。贵州诚鑫致达科技维护客户数据库时,慢日志周报是固定交付项——病灶按周清,数据库才不会突然「老」下来。

企业存储选型参考|贵州诚鑫致达

做机房存储、虚拟化或监控归档,群晖机型参考:FS6400(全闪存阵列) · SA3610 · SA3410。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。

服务区域|贵州诚鑫致达

贵州、贵阳及周边市县的企业找群晖 NAS、企业存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。西南地区多分支企业:跨区域数据集中存储与统一备份。