Heim  >  Artikel  >  Datenbank  >  Wie können Sie optimistisches Sperren in MySQL implementieren?

Wie können Sie optimistisches Sperren in MySQL implementieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 17:41:30990Durchsuche

How Can You Implement Optimistic Locking in MySQL?

Optimistisches Sperren in MySQL

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.

Implementierung in MySQL

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:

  • Wenn AffectedRows == 1, war das Update ohne Konflikte erfolgreich.
  • Wenn AffectedRows == 0, ein Konflikt ist aufgetreten und die Aktualisierung ist fehlgeschlagen.

Isolationsstufen

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.

Einschränkungen

  • Skalierbarkeit: Optimistisches Sperren kann bei hoher Geschwindigkeit weniger effektiv werden -Parallelitätsumgebungen, in denen Konflikte wahrscheinlicher sind.
  • Datenverlust: Wenn ein Konflikt auftritt, können von anderen Benutzern vorgenommene Datenänderungen verloren gehen.

Wann Verwendung

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!

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