Heim > Datenbank > MySQL-Tutorial > Hauptteil

Fassen Sie die vier Isolationsstufen des SQL92-Standards zusammen

藏色散人
Freigeben: 2021-12-03 19:33:30
nach vorne
1760 Leute haben es durchsucht

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!

Verwandte Etiketten:
Quelle:learnku.com
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
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!