Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да разбера коя транзакция причинява състояние на заключване на метаданните на таблицата?

Работи за MySql версия <5.7.3

SHOW ENGINE INNODB STATUS \G

Потърсете раздела -

TRANSACTIONS

Можем да използваме INFORMATION_SCHEMA Маси.

Полезни заявки

За да проверите за всички транзакции за заключване, които чакат:

USE INFORMATION_SCHEMA;
SELECT * FROM INNODB_LOCK_WAITS;

Списък с блокиращи транзакции:

SELECT * 
FROM INNODB_LOCKS 
WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID FROM INNODB_LOCK_WAITS);

ИЛИ

SELECT INNODB_LOCKS.* 
FROM INNODB_LOCKS
JOIN INNODB_LOCK_WAITS
  ON (INNODB_LOCKS.LOCK_TRX_ID = INNODB_LOCK_WAITS.BLOCKING_TRX_ID);

Списък на ключалки на конкретна маса:

SELECT * FROM INNODB_LOCKS 
WHERE LOCK_TABLE = db_name.table_name;

Списък с транзакции, чакащи за заключвания:

SELECT TRX_ID, TRX_REQUESTED_LOCK_ID, TRX_MYSQL_THREAD_ID, TRX_QUERY
FROM INNODB_TRX
WHERE TRX_STATE = 'LOCK WAIT';

Справка - Отстраняване на неизправности с MySQL:Какво да направите, когато заявките не работят , Глава 6 - Страница 96.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешки в разрешенията на Mysql с „зареждане на данни“

  2. Намерете най-близката географска ширина/дължина с SQL заявка

  3. Фатална грешка:Неуловена грешка:Извикване на недефинирана функция mysql_connect()

  4. Търсете текст в полета във всяка таблица на MySQL база данни

  5. Как да импортирате и експортирате CSV файлове с помощта на PHP и MySQL