Uma simples declaração "delete single record" congelou em mim. Suspeitando de um problema de bloqueio (morto), verifiquei a lista de processos para ver o que bloqueia o delete
. A instrução delete
era o único processo de execução do banco de dados e ainda seu estado era Locked
. Permaneceu nesse estado por cerca de 2 minutos e terminou com sucesso.
Pergunta: o que pode tornar um processo do MySQL Locked
, exceto outro processo contendo um bloqueio?
Abaixo está a saída de 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)