慢查询的排查,一直是性能优化里的老大难问题。MySQL 的慢查询日志功能就挺实用,能帮你把那些跑得慢的 SQL 都揪出来,日志还详细。通过 SHOW VARIABLES 一查就知道慢查询日志有没有开,没开就用 SET GLOBAL 指令打开,几秒搞定。

默认超过 10 秒的 SQL 才算慢?这也太宽松了吧!可以用 SET GLOBAL long_query_time = 5 把阈值调到 5 秒,比较符合线上情况。调完再用 SHOW VARIABLES 查一下,确认下有没有生效。

查日志文件时,mysqldumpslow 是个不错的小工具,能帮你把日志归类统计,方便看哪些查询反复出现。再配合 EXPLAIN 执行计划,能更清楚知道问题出在哪,比如是没用上索引,还是全表扫描太狠。

优化方面,还是那几个老套路:加索引、改 SQL、清理表结构、定期 OPTIMIZE TABLE。小动作,大提升。如果你常遇到慢 SQL 问题,建议你直接把慢查询日志打开, + 优化,还是挺有成效的。

哦对了,下面这些文章也蛮有用的,比如 MySQL 查询性能优化mysqldumpslow 使用指南,看完你会有更多招儿。