当前位置:首页 >探索 >MySQL如何查看未提交的事务SQL 包括自己的事务SQL的id及内容

MySQL如何查看未提交的事务SQL 包括自己的事务SQL的id及内容

2024-06-30 17:26:35 [百科] 来源:避面尹邢网

MySQL如何查看未提交的未提事务SQL

作者:数据库干货铺 数据库 SQL Server MySQL中经常遇到事务中的SQL正在执行或执行完成后未提交,如何找出对应的事务SQL?

MySQL中经常遇到事务中的SQL正在执行或执行完成后未提交,如何找出对应的未提SQL?

MySQL如何查看未提交的事务SQL 包括自己的事务SQL的id及内容

1. 查看正在执行的SQL

查看事务中正在执行的SQL方式有多种,例如

MySQL如何查看未提交的事务SQL 包括自己的事务SQL的id及内容

1.1 通过processlist查看

会话1:执行1个SQL

mysql> begin;
Query OK, 0 rows affected (0.00 sec)


mysql> select sleep(20),now() ,id from test1;

会话2:开启另一个会话,查看对应的未提SQL

mysql> select  id ,info  from information_schema.processlist where info is not null;
+----+------------------------------------------------------------------------------+
| id | info |
+----+------------------------------------------------------------------------------+
| 36 | select sleep(20),now() ,id from test1 |
| 37 | select id ,info from information_schema.processlist where info is not null |
+----+------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
可以看到正在执行的SQL,包括自己的事务SQL的id及内容。

1.2 通过events_statements_current查看

会话1:执行1个SQL

mysql> begin;
Query OK, 0 rows affected (0.00 sec)


mysql> select sleep(20),now() ,id from test1;

会话2:查看对应的SQL

mysql> select a.id,a.info, b.thread_id, c.sql_text  from information_schema.processlist  a, performance_schema.threads b, performance_schema.events_statements_current c  where  a.id=b.processlist_id  and b.thread_id = c.thread_id\G

MySQL如何查看未提交的事务SQL 包括自己的事务SQL的id及内容

(责任编辑:知识)

    推荐文章
    热点阅读