Назад | Перейти на главную страницу

Что может заблокировать единственный процесс MySQL db?

Простое старое заявление «удалить единственную запись» застыло на мне. Подозревая проблему (мертвой) блокировки, я проверил список процессов, чтобы увидеть, что блокирует 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)