Heim > Datenbank > MySQL-Tutorial > Was verursacht einen MySQL-Deadlock?

Was verursacht einen MySQL-Deadlock?

little bottle
Freigeben: 2020-10-13 09:50:29
Original
7131 Leute haben es durchsucht

Die Ursache für einen MySQL-Deadlock: Zwei oder mehr Prozesse konkurrieren während der Ausführung um Ressourcen. In MySQL gibt es drei Arten von Sperren: Sperren auf Tabellenebene, Sperren auf Zeilenebene und Seitensperren. Unter diesen haben Sperren auf Tabellenebene einen geringen Overhead, schnelle Sperren und es treten keine Deadlocks auf.

Was verursacht einen MySQL-Deadlock?

MySQL ist ein relationales Datenbankverwaltungssystem, das die SQL-Sprache verwendet, die am häufigsten verwendete standardisierte Sprache für den Zugriff auf Datenbanken. Bei der Nutzung von MySQL kann es zu Deadlocks kommen.

Die drei Arten von Sperren in MySQL:

Sperren auf Tabellenebene: geringer Overhead, schnelle Sperren; keine Deadlocks; Wahrscheinlichkeit von Sperrkonflikten geringste Parallelität.

Sperren auf Zeilenebene: Es kann zu hohem Overhead und langsamen Sperren kommen. Die Sperrgranularität ist am geringsten und die Parallelität ist am höchsten.

Seitensperre: Die Kosten und die Sperrzeit liegen zwischen Tabellensperren und Zeilensperren. Die Sperrgranularität liegt zwischen Tabellensperren und Zeilensperren und die Parallelität ist durchschnittlich.

Algorithmus:

Nächste Tastensperre sperren, gleichzeitig den Datensatz (Daten) sperren und die Lücke vor dem Datensatz sperren

Lückensperre, den Datensatz nicht sperren, nur die vorherige Lücke aufzeichnen

Recordlock (Daten sperren, nicht Lücke sperren)

Also eigentlich Next-KeyLocks=Lückensperre + Recordlock-Sperre

Unter welchen Umständen tritt ein Deadlock auf

Der sogenannte Deadlock: bezieht sich auf das Phänomen, dass zwei oder mehr Prozesse aufgrund des Wettbewerbs um Ressourcen während der Ausführung nicht vorankommen. Zu diesem Zeitpunkt befindet sich das System in einem Deadlock-Zustand oder das System hat einen Deadlock. Diese Prozesse, die immer aufeinander warten, werden Deadlock-Prozesse genannt.

Sperren auf Tabellenebene verursachen keine Deadlocks. Daher gilt die Lösung für Deadlocks hauptsächlich für die am häufigsten verwendete InnoDB.

Der Schlüssel zu Deadlocks ist: zwei (oder mehr). Die Reihenfolge der Sitzungssperren ist inkonsistent.

Dann liegt der Schlüssel zur Lösung des Deadlock-Problems darin, verschiedene Sitzungen der Reihe nach zu sperren.

Das obige ist der detaillierte Inhalt vonWas verursacht einen MySQL-Deadlock?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage