Heim  >  Artikel  >  Datenbank  >  Fassen Sie die vier Isolationsstufen des SQL92-Standards zusammen

Fassen Sie die vier Isolationsstufen des SQL92-Standards zusammen

藏色散人
藏色散人nach vorne
2021-12-03 09:46:361720Durchsuche

Oread uncommitted (lesen Sie den Inhalt von unsurmit)

  • Die Änderung der Transaktion im Read Uncommitted, auch wenn sie nicht übermittelt wird, ist sie für andere Angelegenheiten sichtbar. Transaktionen können nicht festgeschriebene Daten lesen, was auch als Dirty Read bezeichnet wird. In Bezug auf die Leistung ist Read Uncommitted nicht viel besser als andere Ebenen, es fehlen jedoch viele Vorteile anderer Ebenen, es sei denn, es gibt sehr notwendige Gründe.

Read commited (Lies Commit-Inhalt)

  • Die Standardisolationsstufe der meisten Datenbanksysteme ist Read commited (MySQL jedoch nicht). Read Committed erfüllt die oben erwähnte einfache Definition von Isolation: Wenn eine Transaktion gestartet wird, sind nur Änderungen sichtbar, die von Committed-Transaktionen vorgenommen wurden. Mit anderen Worten: Alle Änderungen, die eine Transaktion vom Anfang bis zum Zeitpunkt der Festschreibung vornimmt, sind für andere Transaktionen unsichtbar. Diese Ebene wird manchmal als nicht wiederholbares Lesen bezeichnet, da die zweimalige Ausführung derselben Abfrage zu unterschiedlichen Ergebnissen führen kann.

Wiederholbares Lesen (wiederholbares Lesen)

  • Wiederholbares Lesen löst das Problem des schmutzigen Lesens. Auf dieser Ebene wird sichergestellt, dass die Ergebnisse beim mehrmaligen Lesen desselben Datensatzes in derselben Transaktion konsistent sind. Theoretisch kann die wiederholbare Leseisolationsstufe jedoch immer noch kein anderes Phantom-Leseproblem (Phantom-Lesen) lösen. Das sogenannte Phantom-Lesen bedeutet, dass eine andere Transaktion einen neuen Datensatz in den Bereich einfügt, wenn die vorherige Transaktion die Datensätze in dem Bereich erneut liest. Dabei werden Phantomzeilen erzeugt. InnoDB- und XtraDB-Speicher-Engines lösen das Phantomleseproblem durch Multi-Version-Parallelitätskontrolle (MVCC).
  • Wiederholbares Lesen ist die Standard-Transaktionsisolationsstufe von Mysql, die hauptsächlich durch die Verwendung von MVVC eine hohe Parallelität erreicht und eine Strategie namens Next-Key-Locking verwendet, um Phantom-Lesevorgänge zu vermeiden.

Serializable (Serializable)

  • Serializable ist die höchste Isolationsstufe. Es vermeidet das zuvor erwähnte Phantomleseproblem, indem es die Serialisierung von Transaktionen erzwingt. Um es einfach auszudrücken: Serializable fügt jeder gelesenen Datenzeile eine Sperre hinzu, sodass es zu vielen Zeitüberschreitungen und Problemen bei der Sperrenerfassung kommen kann. Diese Isolationsstufe wird in tatsächlichen Anwendungen selten verwendet. Diese Stufe sollte nur dann in Betracht gezogen werden, wenn die Datenkonsistenz unbedingt sichergestellt werden muss und das Fehlen von Parallelität akzeptabel ist.

Isolationsebene

ANSI SQL92 P68-69

Ebene (Isolationsebene)Dirty Read (Dirty Read) 🏜 ××》
Nicht wiederholbares Lesen (nicht wiederholbares Lesen) Phantom. (Phantom lesen) Wiederholbare Lektüre (Wiederholbar Lesen)
Tutorial                                                                                   

Das obige ist der detaillierte Inhalt vonFassen Sie die vier Isolationsstufen des SQL92-Standards zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen