MySQL таблица блокируется при записи блокировки записи, в то время как show open table показывает, что блокировка для целевой таблицы не удерживается (In_use = 0) - PullRequest
0 голосов
/ 09 июня 2019

При попытке получить блокировку записи некоторой таблицы с помощью:

LOCK TABLE infoTable write;

Мой сценарий Python3 заблокирован, а show processlist указывает, что сценарий заблокирован в ожидании получения блокировки записи:

Waiting for table metadata lock

Тем не менее, целевая таблица infoTable не заблокирована ни одним сеансом, в результате show open table говорит:

mysql> show open tables where In_use > 0;
Empty set (0.00 sec)

Так почему же блокировка записи блокируется, когда таблица не блокируется другим сеансом?

Follow up1: Как следует из комментария, я попытался получить статус блокировки транзакции, ни одна транзакция не блокирует целевую таблицу.

mysql> SELECT * FROM INNODB_LOCK_WAITS;
Empty set, 1 warning (0.00 sec)

Дополнительная информация для вашей справки: версия mysql: mysql Ver 14.14 Distrib 5.7.24, для Linux (x86_64) с использованием оболочки EditLine

Информация об ОС: Linux 4.15.0-42-generic # 45-Ubuntu SMP, четверг 15 ноября 19:32:57 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

...