Получить заблокированные таблицы в запросе mysql

Есть ли какой-либо способ с помощью запроса MySQL получить заблокированные таблицы? У меня запущено приложение Threading С#, и в приложении есть блокировка таблиц.

Мне нужно увидеть заблокированные таблицы и проанализировать код, который может блокировать его.

Ответы

Ответ 1

Использование:

SHOW OPEN TABLES

Проверьте, больше ли столбец In_use 0. В этом случае таблица заблокирована.

Примеры

  • Список заблокированных таблиц:

    show open tables WHERE In_use > 0

  • Проверьте, заблокирована ли таблица tb_employees:

    show open tables WHERE Table LIKE 'tb_employees' AND In_use > 0

Из официальной документации :

In_use

Количество блокировок или   запросы блокировки есть для таблицы.   Например, если один клиент приобретает   блокировка для таблицы с использованием LOCK TABLE t1   WRITE, In_use будет 1. Если другой   клиентские проблемы LOCK TABLE t1 WRITE   в то время как таблица остается заблокированной,   клиент будет блокировать ожидание   блокировка, но запрос блокировки вызывает   In_use равно 2. Если счетчик равен нулю,   таблица открыта, но не в настоящее время   быть использованным. In_use также увеличивается   оператором HANDLER... OPEN и   уменьшен с помощью HANDLER... CLOSE.