当前位置: 首页 > news >正文

查看数据库mysql的慢查询

下面给出一个详细、可执行的成熟方案,用于查看并分析 MySQL 的慢查询。覆盖多种场景,便于在不同环境(自建 MySQL、云托管、只想最小化日志开销等)中选用合适的方法。

一、总体思路与推荐顺序

  • 优先使用 Performance Schema(实时、零磁盘开销,适合长期监控)或慢查询日志(离线深度分析,便于事后溯源)。
  • 结合 sys schema 提高可读性与分析效率。
  • 在需要临时排查或未开启慢查询日志时,合理使用通用查询日志(General Log)作为临时手段,但注意成本。
  • 对慢查询进行执行计划诊断,优先使用 EXPLAIN ANALYZE(MySQL 8.0+)。
  • 如在云环境/托管数据库,结合云厂商提供的慢查询与性能洞察工具。

二、方案 A:慢查询日志(Slow Query Log)— 离线分析的基础

  1. 启用与配置
  • 查看当前状态
    • SHOW GLOBAL VARIABLES LIKE 'slow_query_log%';
    • SHOW GLOBAL VARIABLES LIKE 'long_query_time';
  • 临时开启(重启后失效)
    • SET GLOBAL slow_query_log = 'ON';
    • SET GLOBAL long_query_time = 1; -- 设为 1 秒,可根据业务调整
    • SET GLOBAL log_queries_not_using_indexes = 'ON'; -- 记录未使用索引的查询
  • 持久化开启(推荐生产环境) 在 my.cnf / /etc/mysql/my.cnf 等配置文件中: [mysqld] slow_query_log = ON slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 1 log_queries_not_using_indexes = ON log_slow_admin_statements = ON # 如需要记录管理员操作的慢语句 保存并重启 MySQL: systemctl restart mysqld
  • 日志权限检查
    • ensure mysql 用户对日志文件有写权限
  1. 验证与查看慢查询日志
  • 实时查看慢查询日志
    • tail -f /var/log/mysql/mysql-slow.log
  • 解析日志(不依赖额外工具也能看到结论)
    • grep、awk 等简单筛选
  • 常用聚合分析工具
    • mysqldumpslow -s t -t 20 /var/log/mysql/mysql-slow.log # 按总耗时排序
    • mysqldumpslow -s c -t 20 /var/log/mysql/mysql-slow.log # 按执行次数排序
    • 也可用 pt-query-digest 进行更强大分析(Percona Toolkit)
  1. 使用 pt-query-digest(强烈推荐)
  • 安装:Percona Toolkit
  • 使用:
    • pt-query-digest /var/log/mysql/mysql-slow.log > /tmp/slow_report.txt
    • 报告包含:最耗时的查询、指纹、执行次数、平均耗时、EXPLAIN 样例等
  1. 结合 EXPLAIN 与 EXPLAIN ANALYZE
  • 对选中的慢查询,获取执行计划
    • EXPLAIN SELECT ...;
    • 在 MySQL 8.0+ 使用 EXPLAIN ANALYZE SELECT ...; 可以看到实际执行成本、逐步耗时
  • 依据计划进行索引优化、查询改写、统计信息更新等

三、方案 B:Performance Schema(实时慢查询监控,零磁盘开销) MySQL 5.6+ 都有 Performance Schema;8.0 版本体验更佳。

  1. 启用与配置
  • 确认相关开关状态
    • SELECT * FROM performance_schema.setup_consumers WHERE NAME LIKE '%statements%';
  • 启用语句相关消费记录(通常默认开启)
    • UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%statements%';
  • 启用 Digest 与 Instrument(若未默认开启)
    • UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME LIKE '%statement/%';
  • 注意:Performance Schema 的数据在内存中,重启后可清空,请结合 Sys schema 使用以便阅读
  1. 常用查询(慢查询聚合分析)
  • 按照摘要(digest)查看慢查询汇总
    • SELECT DIGEST_TEXT AS normalized_sql, SCHEMA_NAME AS schema_name, COUNT_STAR AS exec_count, SUM_TIMER_WAIT / 1000000000 AS total_seconds, AVG_TIMER_WAIT / 1000000000 AS avg_seconds, MAX_TIMER_WAIT / 1000000000 AS max_seconds FROM performance_schema.events_statements_summary_by_digest WHERE AVG_TIMER_WAIT > 1_000_000_000 -- > 1s 的阈值,可按需调整 ORDER BY AVG_TIMER_WAIT DESC LIMIT 20;
  • 查看最近一次较慢的语句(历史记录)
    • SELECT SQL_TEXT, TIMER_WAIT / 1000000000 AS duration_seconds FROM performance_schema.events_statements_history ORDER BY TIMER_WAIT DESC LIMIT 10;
  • 结合数据库、用户、表等过滤条件
    • 可用 DIGEST、DIGEST_TEXT、SCHEMA_NAME、DIGEST_TEXT 等字段结合过滤
  1. 实用要点
  • Performance Schema 数据默认是近实时的,适合持续监控与趋势分析
  • 数据量大时要注意对服务器性能的影响,必要时降低收集粒度或只开启必要的 instrumentation
  • 与 MySQL 8.0+ 的 EXPLAIN/EXPLAIN ANALYZE 结合,能快速找到瓶颈点
http://www.cnnetsun.cn/news/187328.html

相关文章:

  • ncmdumpGUI:轻松解密网易云音乐加密文件的专业解决方案
  • ES在物联网实时数据场景中的部署方案
  • 城通网盘直链解析终极方案:3分钟实现高速下载的完整教程
  • 城通网盘直连解析器:3步告别繁琐下载流程
  • Sunshine游戏串流:打造家庭多设备娱乐中枢的完整指南
  • 虾皮怎样避免订单逾期出货
  • WarcraftHelper:让经典魔兽争霸在现代系统重获新生
  • Sunshine游戏串流终极指南:三步打造个人云游戏系统
  • WarcraftHelper:魔兽争霸III现代化优化完整指南
  • 魔兽争霸III兼容性修复:WarcraftHelper技术指南
  • 终极指南:wx-calendar微信小程序日历组件从零到精通实战
  • 闲鱼数据采集工具:5分钟快速上手安卓自动化爬虫
  • Windows平台控制器驱动冲突终极解决方案:多软件共存架构深度解析
  • 魔兽争霸III兼容性修复工具:解决现代系统运行难题
  • Sketch MeaXure:智能化设计标注的革新之路
  • 魔兽争霸III现代化重生指南:解锁经典游戏的终极体验
  • “三层过滤法”降ai率绝了,一篇文章教你如何快速降ai【附降ai提示词】
  • 跨国企业 AI-ITSM 多终端支持 —— 构建智能全球服务管理平台
  • 如何在5分钟内配置DS4Windows:PC游戏手柄的终极兼容方案
  • Gofile下载器:告别手动点击的智能文件管理方案
  • 【IC】HBM的通信物理层
  • WarcraftHelper:魔兽争霸3终极优化工具,让老游戏焕发新生机
  • WarcraftHelper:解决魔兽争霸III兼容性问题的终极方案
  • 终极指南:如何让老电脑流畅运行魔兽争霸3的10个优化技巧
  • 终极指南:ColorControl如何优化HDR显示器上的SDR内容显示效果
  • Lumafly模组管理器:重新定义空洞骑士模组体验的终极方案
  • 逆向调试技巧:如何高效使用OllyDbg日志
  • 魔兽争霸III终极优化指南:简单几步让经典游戏重获新生
  • 魔兽争霸III优化神器:3分钟让你的老游戏焕然一新!
  • DS4Windows完整使用指南:从安装到高级配置