DBAtlas · Atlas für Datenbankbetrieb

Blockierende Sperren anzeigen (data_lock_waits)

MySQLSession

Befehl

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;

Was es tut

Zeigt, welche Transaktion von welcher blockiert wird, mit den zugehörigen Abfragen und Thread-IDs.

Wann einsetzen

Um Sperrwartezustände und durch Deadlocks verursachte Verlangsamungen zu diagnostizieren.

Vorsicht

performance_schema.data_lock_waits kam mit MySQL 8.0; ältere Versionen nutzen information_schema.innodb_lock_waits. Um den blockierenden Thread zu stoppen, KILL blocking_thread; verwenden.

In DBAtlas öffnen →

Verwandte Einträge