DBAtlas · 数据库运维图谱

查看阻塞锁(data_lock_waits)

MySQL会话

命令

SELECT r.trx_id AS waiting_trx, r.trx_mysql_thread_id AS waiting_thread, LEFT(r.trx_query,80) AS waiting_query, b.trx_id AS blocking_trx, b.trx_mysql_thread_id AS blocking_thread, LEFT(b.trx_query,80) AS blocking_query FROM performance_schema.data_lock_waits w JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_engine_transaction_id JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_engine_transaction_id;

作用

显示哪个事务被哪个事务阻塞,以及相关的查询和线程 ID。

适用场景

用于诊断锁等待以及由死锁引起的性能下降。

注意

performance_schema.data_lock_waits 在 MySQL 8.0 中引入;旧版本使用 information_schema.innodb_lock_waits。要停止阻塞线程,请使用 KILL blocking_thread;。

在 DBAtlas 中打开 →

相关内容