
# 如何查询久未提交的长事务并处理相应会话
长事务可能是业务侧根据自身需求设计，但也可能是**begin** 或**start transaction**之后忘记提交（事务泄漏）。一直不提交的长事务会导致锁冲突、Undo log堆积等后果。排查长事务可以使用以下语句：
```
SELECT * FROM information_schema.innodb_trx order by trx_started asc limit X;
```
按照事务开始时间排序，从最早开始列出X条。
输出结果的trx_started 为事务开始时间，trx_mysql_thread_id为对应的会话ID。根据相应会话ID在processlist中的信息，判断如何处理长事务所在的该会话（提交/回滚/预期内保持不动/KILL）。
