Простое старое заявление «удалить единственную запись» застыло на мне. Подозревая проблему (мертвой) блокировки, я проверил список процессов, чтобы увидеть, что блокирует delete
. В delete
оператор был единственным запущенным процессом БД, и его состояние было Locked
. Он оставался в этом состоянии примерно 2 минуты, а затем успешно завершился.
Вопрос: что может сделать MySQL процесс Locked
кроме другого процесса, удерживающего блокировку?
Ниже представлен результат работы show processlist
:
mysql> show processlist;
+-------+------+-----------------------------------+------+---------+------+--------+---------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+------+-----------------------------------+------+---------+------+--------+---------------------------------------------+
| 79616 | htt | gateway1.xxxxxxxxxxxxxxxxxx:42254 | foo | Query | 106 | Locked | delete from xbarApp_testfoo where id = 2279 |
| 79618 | htt | gateway1.xxxxxxxxxxxxxxxxxx:41009 | foo | Query | 0 | NULL | show processlist |
+-------+------+-----------------------------------+------+---------+------+--------+---------------------------------------------+
2 rows in set (0.35 sec)