operação de exclusão bloqueia a tabela inteira no innodb

Eu tenho um problema com o bloqueio de tabela no InnoDB na operação de exclusão. Eu tenho uma fila de tabelas com, por exemplo, uma coluna e muitas transações que podem inserir linhas nessa fila ou excluí-las. Não há duas transações trabalhando com as mesmas linhas ao mesmo tempo. Portanto, todos os bloqueios de linha devem ser distintos. Mas, às vezes, quando a operação de exclusão exclui a maior parte das linhas da tabela, o InnoDB prefere usar o bloqueio de tabela em vez do bloqueio de linha e isso causa conflitos.

Não consigo reproduzir exatamente esse impasse, mas achei esse problema de bloqueio. ou seja, eu tenho fila de tabela: id com valores (1,3,4,5,6,7)

Transação 1:

insert into queue value(2);

Transação 2:

delete from queue where id in (1,3,4,5,6,7); -- here the lock comes

questionAnswers(1)

yourAnswerToTheQuestion