Heim  >  Artikel  >  Datenbank  >  So vermeiden Sie einen MySQL-Deadlock

So vermeiden Sie einen MySQL-Deadlock

青灯夜游
青灯夜游Original
2019-05-22 18:29:228376Durchsuche

Methoden zur Vermeidung von MySQL-Deadlocks: 1. Greifen Sie in einer festen Reihenfolge auf Tabellen und Zeilen zu. 2. Große Transaktionen sind anfälliger für Deadlocks. Teilen Sie große Transaktionen in kleinere auf Versuchen Sie bei der Transaktion, alle erforderlichen Ressourcen auf einmal zu sperren, um die Wahrscheinlichkeit eines Deadlocks zu verringern. 4. Reduzieren Sie die Isolationsstufe. 5. Fügen Sie der Tabelle angemessene Indizes hinzu.

So vermeiden Sie einen MySQL-Deadlock

So vermeiden Sie Deadlocks so weit wie möglich:

1. Greifen Sie in einer festen Reihenfolge auf Tabellen und Zeilen zu. Beispielsweise aktualisiert Transaktion A bei zwei Transaktionen, die Daten aktualisieren, die Daten in der Reihenfolge 1, 2; Transaktion B aktualisiert die Daten in der Reihenfolge 2, 1. Dies führt eher zu einem Deadlock.

2. Große Dinge in kleinere Teile zerlegen. Große Transaktionen sind anfälliger für Blockaden. Wenn das Unternehmen dies zulässt, teilen Sie die großen Transaktionen in kleinere auf.

3. Versuchen Sie, in derselben Transaktion alle erforderlichen Ressourcen auf einmal zu sperren, um die Wahrscheinlichkeit eines Deadlocks zu verringern.

4. Verringern Sie die Isolationsstufe. Wenn das Unternehmen dies zulässt, ist es auch eine gute Wahl, die Isolationsstufe zu senken. Durch die Anpassung der Isolationsstufe von RR auf RC können beispielsweise viele durch Lückensperren verursachte Deadlocks vermieden werden.

5. Fügen Sie der Tabelle sinnvolle Indizes hinzu. Es ist ersichtlich, dass jeder Zeile der Tabelle eine Sperre hinzugefügt wird, wenn der Index nicht verwendet wird, und die Wahrscheinlichkeit eines Deadlocks erheblich zunimmt.

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

Stellungnahme:
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