mysql如何分析慢查询语句

P粉602998670
发布: 2025-10-08 16:12:01
原创
538人浏览过
首先开启慢查询日志,通过配置slow_query_log、long_query_time等参数记录执行缓慢的SQL;接着使用mysqldumpslow或pt-query-digest分析日志,识别高频、耗时长、扫描多的语句;最后结合EXPLAIN查看执行计划,检查type、key、rows和Extra信息,优化索引或SQL结构。

mysql如何分析慢查询语句

要分析 MySQL 的慢查询语句,核心是开启慢查询日志并结合工具进行解读。关键在于定位执行时间长、扫描数据多或未合理使用索引的 SQL 语句。

开启慢查询日志

确保 MySQL 已启用慢查询日志功能,这是分析的前提:

slow_query_log = ON
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = ON

  • 重启 MySQL 或执行 SET GLOBAL 命令动态生效
  • long_query_time 定义“慢”的标准,单位为秒,可设为 0.5 或 1
  • log_queries_not_using_indexes 会记录未走索引的语句,便于优化

使用 mysqldumpslow 分析日志

MySQL 自带的 mysqldumpslow 是快速分析慢查询日志的命令行工具:

  • 查看最慢的前 10 条语句:
    mysqldumpslow -s t -r -t 10 /var/log/mysql/slow.log
  • 按出现次数排序,找出高频慢查询:
    mysqldumpslow -s c -r /var/log/mysql/slow.log
  • 过滤特定表或用户:
    mysqldumpslow -g "ORDER BY" /var/log/mysql/slow.log

输出结果会聚合相似语句,显示执行次数、平均耗时、锁时间等信息。

蓝心千询
蓝心千询

蓝心千询是vivo推出的一个多功能AI智能助手

蓝心千询 34
查看详情 蓝心千询

使用 pt-query-digest 进行深度分析

pt-query-digest(Percona Toolkit 中的工具)比 mysqldumpslow 更强大,支持统计维度更丰富:

  • 安装 Percona Toolkit 后运行:
    pt-query-digest /var/log/mysql/slow.log
  • 输出包括:
    - 消耗总时间最多的语句
    - 扫描行数最多的查询
    - 使用临时表或文件排序的语句
    - 建议添加的索引
  • 还能直接分析实时查询流:
    pt-query-digest --processlist h=localhost

结合 EXPLAIN 分析具体语句

找到可疑 SQL 后,使用 EXPLAIN 查看执行计划:

  • 在 SQL 前加上 EXPLAIN,如:
    EXPLAIN SELECT * FROM orders WHERE user_id = 123;
  • 重点关注:
    - type:是否为 ALL(全表扫描)
    - key:是否使用了索引
    - rows:扫描行数是否过大
    - Extra:是否出现 Using filesort、Using temporary

根据执行计划判断是否需要创建索引、重写 SQL 或调整表结构。

基本上就这些。开启日志、收集数据、用工具分析、再深入 EXPLAIN 验证,就能系统性地优化慢查询。

以上就是mysql如何分析慢查询语句的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号