可通过查询information_schema.innodb_trx表查看当前活跃事务的id、状态、开始时间及执行sql,结合show processlist分析线程状态,再用select @@session.transaction_isolation检查隔离级别,必要时启用general_log追踪事务操作,其中innodb_trx为最核心的监控手段。

在MySQL中查看当前事务的状态和相关信息,可以通过多种方式实现,尤其是使用支持事务的存储引擎(如InnoDB)时。以下是常用的几种查看当前事务的方法。
1. 查看当前正在运行的事务
通过查询 information_schema.INNODB_TRX 表可以查看当前所有活跃的事务信息:
SELECT * FROM information_schema.INNODB_TRX\G该命令会列出每个正在执行的事务的详细信息,包括:
- trx_id:事务ID
- trx_state:事务状态(如 RUNNING、LOCK WAIT)
- trx_started:事务开始时间
- trx_mysql_thread_id:对应线程ID(可用于关联 processlist)
- trx_query:当前正在执行的SQL语句
这个视图是排查长时间运行事务或锁等待问题的重要工具。
2. 查看线程连接与执行状态
结合 SHOW PROCESSLIST 或查询 performance_schema.threads 和 information_schema.PROCESSLIST 可以了解哪些连接正在执行事务:
本文介绍了Python操作MYSQL、执行SQL语句、获取结果集、遍历结果集、取得某个字段、获取表字段名、将图片插入数据库、执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐。如果想查看在线版请访问:https://www.jb51.net/article/34102.htm
关注 Command 列为 "Query" 且长时间运行的连接,配合上面的 INNODB_TRX 可定位具体事务。
3. 查看事务隔离级别
当前会话或全局的事务隔离级别也属于事务上下文的一部分,可通过以下命令查看:
-- 查看当前会话隔离级别 SELECT @@session.transaction_isolation;-- 查看全局隔离级别 SELECT @@global.transaction_isolation;
4. 启用事务日志或监控
如果需要更详细的事务行为分析,可启用通用日志或使用 performance_schema 中的相关表来追踪事务开始、提交或回滚事件:
-- 开启通用日志(慎用,影响性能) SET GLOBAL general_log = ON;然后查看日志文件中的 BEGIN、COMMIT、ROLLBACK 等操作记录。
基本上就这些常用方法。日常运维中,INNODB_TRX 是最直接有效的查看当前事务的手段,结合 PROCESSLIST 能快速定位问题会话。确保你有足够权限访问 information_schema 中的表即可正常使用。









