Il "gap" è bloccato in attesa che qualcuno possa provare a inserire la riga che sto cercando di eliminare.
O, per vederla in un altro modo... Sarebbe troppo lento per gestire perfettamente ogni caso strano. Quindi, InnoDB sceglie di gestire la maggior parte dei casi in modo efficiente e punta sul raro caso stravagante.
In conclusione:vivi con esso. Tu farai ottenere deadlock. Non sarai necessariamente in grado di capirli. Ma il tuo codice deve essere ripristinato, semplicemente tornando indietro e tornando a BEGIN
.