Mysql
 sql >> Database >  >> RDS >> Mysql

l'operazione di eliminazione blocca l'intera tabella in innodb

Prima di tutto supponendo che id sia una chiave primaria o almeno una colonna indicizzata.

Inserisci non dovrebbe bloccare la tabella, quindi è probabile che qualsiasi altra query di aggiornamento/eliminazione venga eseguita contemporaneamente all'eliminazione dei record.

In caso contrario, potrebbe essere dovuto al "blocco del gap" come menzionato @a_horse_with_no_name.

Quindi, nel momento in cui si verifica di nuovo questo problema, è necessario archiviare tutti i processi "mostra l'elenco completo dei processi" alla fine e controllare anche "mostra lo stato innodb del motore" dove ti mostrerà i processi relativi al deadlock, questo ti aiuterà a ottenere l'esatto problema.

Inoltre, puoi evitare questo blocco per eliminare tutte le righe una per una in base alla chiave primaria.