Allereerst ervan uitgaande dat id een primaire sleutel is of op zijn minst een geïndexeerde kolom.
Invoegen mag de tabel niet vergrendelen, dus de kans is groot dat een andere update/verwijder-query wordt uitgevoerd op hetzelfde moment dat de records worden verwijderd.
Als dit niet het geval is, kan dit te wijten zijn aan "gap locking" zoals vermeld @a_horse_with_no_name.
Dus op het moment dat u dit probleem opnieuw krijgt, moet u alle processen opslaan "volledige proceslijst weergeven" aan uw einde en ook "toon engine innodb-status" aanvinken, waar het u processids laat zien die verband houden met deadlock, dit zal u helpen om exact te krijgen probleem.
Verder U kunt deze vergrendeling vermijden om alle rijen één voor één te verwijderen op basis van de primaire sleutel.