mysql怎么查看等待锁的所有进程

2023-07-18  本文已影响0人  电总

要查看MySQL中所有等待锁的进程,可以使用以下命令:

SHOW ENGINE INNODB STATUS\G

这个命令将显示InnoDB存储引擎的状态信息,并且包含一个名为"TRANSACTIONS"的部分,其中列出了当前所有等待锁的事务。

在输出结果中,您需要查找"TRANSACTIONS"部分,并查看"INNODB WAITING FOR LOCK"这一行。该行下面的信息将显示所有等待锁的事务。每个事务都将显示一个唯一的事务ID,以及该事务所等待的锁的详细信息。

例如,以下是输出结果的一部分,其中列出了一个等待锁的事务:

------------------------

LATEST DETECTED DEADLOCK

------------------------

2021-09-20 17:10:10 0x7f1155d56700

*** (1) TRANSACTION:

TRANSACTION 1713389, ACTIVE 0 sec fetching rows

mysql tables in use 1, locked 1

LOCK WAIT 2 lock struct(s), heap size 376, 1 row lock(s)

MySQL thread id 9, OS thread handle 139840986957824, query id 796 localhost root updating

UPDATE mytable SET value = 2 WHERE id = 1

*** (1) WAITING FOR THIS LOCK TO BE GRANTED:

RECORD LOCKS space id 1234 page no 1 n bits 72 index PRIMARY of table `mydatabase`.`mytable` trx id 1713389 lock_mode X locks rec but not gap waiting

在这个例子中,我们可以看到一个名为"TRANSACTION 1713389"的事务正在等待一个名为"RECORD LOCKS"的锁。

上一篇 下一篇

猜你喜欢

热点阅读