Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie können Sie optimistisches Sperren in MySQL implementieren?

Patricia Arquette
Freigeben: 2024-10-26 17:41:30
Original
989 Leute haben es durchsucht

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>
Nach dem Login kopieren

Optimistische Sperrabfrage:

<code class="sql">UPDATE theTable
SET val1 = @newVal1,
    val2 = @newVal2,
    version = version + 1
WHERE id = @id
AND version = @oldVersion;</code>
Nach dem Login kopieren

Ü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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!