Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Der Löschvorgang sperrt die gesamte Tabelle in innodb

Zunächst einmal vorausgesetzt, id ist ein Primärschlüssel oder zumindest eine indizierte Spalte.

Einfügen sollte die Tabelle nicht sperren, daher besteht die Möglichkeit, dass eine andere Aktualisierungs-/Löschabfrage gleichzeitig mit dem Löschen der Datensätze ausgeführt wird.

Wenn dies nicht der Fall ist, kann es an "Gap Locking" liegen, wie bei @a_horse_with_no_name.

erwähnt

Wenn Sie dieses Problem erneut erhalten, müssen Sie alle Prozesse "vollständige Prozessliste anzeigen" an Ihrem Ende speichern und auch "Innodb-Status der Engine anzeigen" aktivieren, wo Ihnen Prozess-IDs im Zusammenhang mit Deadlocks angezeigt werden. Dies hilft Ihnen, genau zu werden Problem.

Außerdem können Sie diese Sperre vermeiden, um alle Zeilen nacheinander basierend auf dem Primärschlüssel zu löschen.