开启慢查询日志并配置阈值,使用mysqldumpslow或pt-query-digest分析日志,通过EXPLAIN查看执行计划,重点关注type、key、rows和Extra字段,针对性添加索引、优化查询语句、拆分大查询,持续监控避免问题积累。

MySQL 慢查询是影响数据库性能的常见问题,排查和优化需要系统性方法。核心思路是:开启慢查询日志 → 定位慢 SQL → 分析执行计划 → 优化语句或索引 → 验证效果。以下是具体操作步骤。
确保 MySQL 已启用慢查询日志,才能获取分析数据。
查看当前设置:
SHOW VARIABLES LIKE 'slow_query_log'; SHOW VARIABLES LIKE 'long_query_time'; SHOW VARIABLES LIKE 'log_output'; SHOW VARIABLES LIKE 'slow_query_log_file';
临时开启(重启失效):
SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; -- 超过1秒记为慢查询 SET GLOBAL log_output = 'FILE'; -- 输出到文件
永久开启:修改 my.cnf 或 my.ini:
[mysqld] slow_query_log = ON slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1 log_queries_not_using_indexes = ON -- 记录未走索引的查询(可选)
配置后重启 MySQL 或动态生效。
直接看日志文件效率低,推荐使用工具汇总统计。
mysqldumpslow(MySQL 自带):
mysqldumpslow -s at -t 10 /var/log/mysql/slow.log
mysqldumpslow -s rt -t 5 /var/log/mysql/slow.log
mysqldumpslow -g "user" /var/log/mysql/slow.log
pt-query-digest(Percona Toolkit,功能更强):
pt-query-digest /var/log/mysql/slow.log > slow_report.txt
找到可疑 SQL 后,使用 EXPLAIN 查看执行路径。
执行示例:
EXPLAIN SELECT * FROM users WHERE name = 'John' AND age > 25;
重点关注字段:
结合业务逻辑判断是否需要添加复合索引、调整查询条件顺序。
根据分析结果采取对应措施:
基本上就这些。关键在于持续监控慢日志,及时发现并处理新增慢查询,避免问题积累。
以上就是mysql慢查询如何排查_mysql慢日志优化指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号