Pertama-tama dengan asumsi id adalah kunci utama atau setidaknya kolom yang diindeks.
Sisipkan tidak boleh mengunci tabel, jadi kemungkinan kueri pembaruan/penghapusan lainnya dijalankan pada saat yang sama saat menghapus catatan.
Jika tidak maka bisa jadi karena "gap locking" seperti yang disebutkan @a_horse_with_no_name.
Jadi pada saat Anda mendapatkan masalah ini lagi maka Anda perlu menyimpan semua proses "tampilkan daftar proses lengkap" di akhir Anda dan juga periksa "tampilkan status innodb mesin" di mana itu akan menunjukkan kepada Anda proses yang terkait dengan kebuntuan, ini akan membantu Anda untuk mendapatkan yang tepat masalah.
Selanjutnya Anda dapat menghindari penguncian ini untuk menghapus semua baris satu per satu berdasarkan kunci utama.