SHOW ENGINE INNODB STATUS \G
poszukaj sekcji -
TRANSACTIONS
Możemy użyć INFORMATION_SCHEMA tabelach.
Przydatne Zapytania -
Aby sprawdzić o wszystkich transakcjach zamki czekają -
USE INFORMATION_SCHEMA
SELECT * FROM INNODB_LOCK_WAITS;
zestawienia transakcji blokujących
SELECT *
FROM INNODB_LOCKS
WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID FROM INNODB_LOCK_WAITS);
LUB
SELECT INNODB_LOCKS.*
FROM INNODB_LOCKS
JOIN INNODB_LOCK_WAITS
ON (INNODB_LOCKS.LOCK_TRX_ID = INNODB_LOCK_WAITS.BLOCKING_TRX_ID);
listę blokad na perticular tabeli:
SELECT * FROM INNODB_LOCKS
WHERE LOCK_TABLE = db_name.table_name;
listę transakcji oczekujących na zamki:
SELECT TRX_ID, TRX_REQUESTED_LOCK_ID, TRX_MYSQL_THREAD_ID, TRX_QUERY
FROM INNODB_TRX
WHERE TRX_STATE = 'LOCK WAIT';
referencyjny - MySQL Troubleshooting: What To Do When Queries Don't Work rozdział 6 - strona 96.
Wystarczy zauważyć, że wszystkie wymienione tabele znajdują się w bazie danych "INFORMATION_SCHEMA". –
Czy te tabele InnoDB naprawdę przechowują informacje o blokadach metatdat? Ten wpis na blogu sugeruje inaczej: http://mysql.wisborg.dk/2014/01/13/who-holds-the-metadata-lock-mysql-5-7-3-brings-help/ – Gareth
@Gareth: works till mysql -mysql-5-7-3-. Dziękujemy za aktualizację. – Joddy