mysql如何查看慢事务_mysql慢事务查看方法

P粉602998670
发布: 2025-11-24 09:23:58
原创
950人浏览过
首先开启performance_schema监控,检查并启用相关事务事件采集和instrumentation设置;接着通过information_schema.INNODB_TRX和performance_schema.events_transactions_current查询长时间运行的事务;同时配置慢查询日志,设置long_query_time阈值,记录并分析事务中的慢SQL;最后建立定期监控机制,结合脚本或Prometheus+Grafana告警,及时发现并处理超过阈值的长事务,确保系统稳定。

mysql如何查看慢事务_mysql慢事务查看方法

在MySQL中,查看慢事务的关键是开启事务相关的监控功能,并结合性能 Schema(performance_schema)和慢查询日志进行分析。下面介绍几种常用的查看慢事务的方法。

启用 performance_schema 监控事务

MySQL 的 performance_schema 提供了对事务的详细监控能力,需确保其已开启:

  • 检查是否启用:执行 SHOW VARIABLES LIKE 'performance_schema';,确认值为 ON。
  • 启用事务事件采集:进入 performance_schema 的 setup_consumers 表,确保 'events_transactions_current' 和 'events_transactions_history' 已启用。
  • 设置采集级别:修改 setup_instruments 表,启用事务 instrumentation:
    UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME = 'transaction';

查询当前长时间运行的事务

通过 information_schema 和 performance_schema 可以查找正在运行且耗时较长的事务:

  • 查看长时间未提交的事务:
    SELECT * FROM information_schema.INNODB_TRX ORDER BY trx_started;
    关注 trx_started 字段,时间过早的事务可能是“慢事务”或“长事务”。
  • 结合 performance_schema 获取更详细的事务信息:
    SELECT p.thread_id, p.event_id, p.state, p.timer_wait/1000000000 AS duration_sec, p.source FROM performance_schema.events_transactions_current p INNER JOIN information_schema.innodb_trx t ON p.thread_id = t.trx_mysql_thread_id WHERE p.state = 'COMMITTED' OR p.state IS NULL ORDER BY duration_sec DESC;

配置并分析慢查询日志

虽然慢查询日志主要记录 SQL,但长时间运行的事务中的语句也会被记录:

抖云猫AI论文助手
抖云猫AI论文助手

一款AI论文写作工具,最快 2 分钟,生成 3.5 万字论文。论文可插入表格、代码、公式、图表,依托自研学术抖云猫大模型,生成论文具备严谨的学术专业性。

抖云猫AI论文助手 146
查看详情 抖云猫AI论文助手
  • 确保慢查询日志开启:
    SHOW VARIABLES LIKE 'slow_query_log';
    若未开启,可通过配置文件或命令启动。
  • 设置慢查询阈值(例如5秒以上):
    SET GLOBAL long_query_time = 5;
  • 启用记录未使用索引的查询(可选增强排查):
    SET GLOBAL log_queries_not_using_indexes = ON;
  • 事务中执行的慢SQL会被记录到日志中,使用 mysqldumpslow 或 pt-query-digest 分析日志内容。

定期监控与告警建议

为防止长事务影响系统稳定性,建议建立定期检查机制:

  • 编写脚本定时查询 information_schema.innodb_trx,发现运行超过阈值(如300秒)的事务及时告警。
  • 结合监控工具如 Prometheus + Grafana,采集 performance_schema 中的事务指标。
  • 应用层避免大事务,尽量拆分事务,及时提交或回滚。

基本上就这些。关键是开启 performance_schema 并定期检查 INNODB_TRX 表,配合慢查询日志,就能有效识别和处理慢事务问题。

以上就是mysql如何查看慢事务_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号