Heim  >  Artikel  >  Datenbank  >  [MySQL] Transaktionen, die durch die MVCC-Parallelitätskontrolle für mehrere Versionen implementiert werden

[MySQL] Transaktionen, die durch die MVCC-Parallelitätskontrolle für mehrere Versionen implementiert werden

little bottle
little bottlenach vorne
2019-04-16 11:33:133177Durchsuche

Mehrversions-Parallelitätskontrolle. MVCC ist eine Methode zur Parallelitätskontrolle. Sie wird im Allgemeinen in Datenbankverwaltungssystemen verwendet, um den Transaktionsspeicher in Programmiersprachen zu implementieren.

1. Es gibt keinen einheitlichen Implementierungsstandard, um nicht blockierende Lesevorgänge zu erreichen, und Schreibvorgänge sperren nur erforderliche Zeilen
Erreicht durch Speichern eines Snapshots der Daten zu einem bestimmten Zeitpunkt
3. Zu den typischen gehören die optimistische Parallelitätskontrolle und die pessimistische Parallelitätskontrolle
4. Durch Hinzufügen von zwei Spalten mit ausgeblendeten Feldern nach jeder Datensatzzeile werden die beiden Spalten jeweils mit einer Versionsnummer versehen und Versionsnummer löschen, die Versionsnummer der Transaktion speichern, die sie betreibt
5. Das Hinzufügen, Löschen, Ändern und Einchecken der Transaktion erfolgt durch Betreiben des zweispaltigen Versionsnummernfelds

Einfügen speichert die aktuelle Wert für jede neu eingefügte Zeile Transaktionsversionsnummer in das Feld „Versionsnummer der Zeilenerstellung“ einfügen
aktualisieren Fügen Sie eine neue Zeile ein, um die aktuelle Versionsnummer der Transaktionserstellung zu speichern, und ändern Sie die Löschversionsnummer der ursprünglichen Zeilendaten in die Versionsnummer dieser Transaktion
Löschen Ändern Sie das Löschversionsnummernfeld der Zeile. Für die Versionsnummer dieser Transaktion
Wählen Sie eine Abfrage aus, um Daten zu erstellen, deren Versionsnummernfeld kleiner oder gleich der aktuellen Transaktionsversion ist Transaktion oder wird neu in diese Transaktion eingefügt
und Abfrage zum Löschen des nicht vorhandenen Versionsnummernfelds Oder Daten, die größer als die aktuelle Version sind, stellen sicher, dass der Datensatz nicht vor dieser Transaktion gelöscht wurde

6. Ein solches Design erfordert keine Sperre und bietet eine gute Lese- und Betriebsleistung, erfordert jedoch zusätzlichen Speicherplatz
7 .mvcc funktioniert nur unter den beiden Isolationen REPEATABLE READ und READ UNCOMMITED; liest immer die neuesten Daten Alle Zeilen lesen

[Empfohlener Kurs: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt von[MySQL] Transaktionen, die durch die MVCC-Parallelitätskontrolle für mehrere Versionen implementiert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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