Heim >Datenbank >MySQL-Tutorial >Wie können Sie optimistisches Sperren in MySQL implementieren?
Optimistisches Sperren ist eine Praxis, die bei der Parallelitätskontrolle verwendet wird, um zu verhindern, dass mehrere Benutzer dieselben Daten gleichzeitig aktualisieren. Im Gegensatz zum pessimistischen Sperren, bei dem davon ausgegangen wird, dass Konflikte auftreten und Daten zu Beginn einer Transaktion gesperrt werden, geht das optimistische Sperren davon aus, dass Konflikte selten sind, und ermöglicht Aktualisierungen ohne Sperren.
MySQL tut dies Optimistisches Sperren nicht nativ implementieren. Es kann jedoch mithilfe von Standard-SQL-Anweisungen und dem Versionsspaltenansatz implementiert werden:
<code class="sql">CREATE TABLE theTable ( id INT NOT NULL AUTO_INCREMENT, val1 INT NOT NULL, val2 INT NOT NULL, version INT NOT NULL DEFAULT 0 );</code>
Optimistische Sperrabfrage:
<code class="sql">UPDATE theTable SET val1 = @newVal1, val2 = @newVal2, version = version + 1 WHERE id = @id AND version = @oldVersion;</code>
Überprüfung auf Konflikte :
Nach dem Update wird der AffectedRows-Wert überprüft:
Transaktionsisolationsstufen spielen beim optimistischen Sperren eine Rolle. In der Isolationsstufe READ_COMMITTED können andere Prozesse keine nicht festgeschriebenen Aktualisierungen lesen, was das Auftreten von Konflikten verhindert.
Optimistisches Sperren eignet sich für Situationen mit seltenen Aktualisierungen und einer geringen Konfliktwahrscheinlichkeit. Es wird häufig in Webanwendungen verwendet, bei denen kurze Benutzersitzungen die Wahrscheinlichkeit gleichzeitiger Aktualisierungen verringern.
Das obige ist der detaillierte Inhalt vonWie können Sie optimistisches Sperren in MySQL implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!