DBAtlas · Atlas de operaciones de bases de datos

Ver los bloqueos que bloquean (data_lock_waits)

MySQLSesión

Comando

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;

Qué hace

Muestra qué transacción está bloqueada por cuál, con las consultas y los ID de thread relacionados.

Cuándo usarlo

Para diagnosticar las esperas de bloqueo y las ralentizaciones causadas por deadlocks.

Precaución

performance_schema.data_lock_waits llegó en MySQL 8.0; las versiones anteriores usan information_schema.innodb_lock_waits. Para detener el thread bloqueante, use KILL blocking_thread;.

Abrir en DBAtlas →

Relacionado