MVCCMVCC (Multi-Version Concurrency Control) ist eine Mehrversionen-Parallelitätskontrolle. Eine wichtige Funktion von InnoDB besteht darin, gleichzeitige Transaktionen und Rollbacks zu realisieren. Der Sperrmechanismus kann gleichzeitige Vorgänge steuern, hat jedoch einen hohen Systemaufwand. In den meisten Fällen kann MVCC Sperren auf Zeilenebene ersetzen. Die Verwendung von MVCC kann den Systemaufwand verringern. Die konkrete Implementierung besteht darin, jeder Zeile der Datenbank drei zusätzliche Felder hinzuzufügen:
Snapshot lesenBeispielsweise ist eine entsperrte Auswahloperation ein Snapshot-Lesevorgang. Das Aufkommen des Snapshot-Lesevorgangs basiert auf der Überlegung, die Parallelitätsleistung zu verbessern. Die Implementierung des Snapshot-Lesevorgangs basiert auf der Multiversion-Parallelitätssteuerung, nämlich MVCC. MVCC kann als eine Variante von Zeilensperren betrachtet werden. In vielen Fällen werden Sperrvorgänge vermieden und der Overhead verringert. Da es auf mehreren Versionen basiert, liest der Snapshot-Lesevorgang möglicherweise nicht unbedingt die neueste Version der Daten, sondern kann eine frühere historische Version sein. Aktueller MesswertGelesen werden die aktuellen Daten, und es ist nicht erforderlich, mithilfe des Undo-Protokolls den Zustand vor dem Start der Transaktion zurückzuverfolgen. Gelesen wird die neueste Version des Datensatzes. Beim Lesen muss außerdem sichergestellt werden, dass andere gleichzeitige Transaktionen den aktuellen Datensatz nicht ändern können und der gelesene Datensatz gesperrt wird.
Einfach ausgedrückt soll MVCC Lese-/Schreibkonflikte ohne Sperren erreichen, und dieser Lesevorgang bezieht sich auf das Lesen eines Snapshots, nicht auf das aktuelle Lesen. Das aktuelle Lesen ist eigentlich ein Sperrvorgang, der die Implementierung einer pessimistischen Sperre darstellt.
MVCC-ImplementierungsprinzipDrei versteckte Felder
Versionskette/Undo-ProtokollDenn das Rückgängig-Protokoll zeichnet die alte Version der Daten vor der Transaktion auf, und dann zeigt der Rollback-Zeiger im Zeilendatensatz auf die Position der alten Version, wodurch eine Versionskette gebildet wird. Die Lese-Ansicht durchläuft die DB_TRX_ID in der verknüpften Liste weiter, bis sie eine DB_TRX_ID findet, die bestimmte Bedingungen erfüllt. Dann ist der alte Datensatz, in dem sich die DB_TRX_ID befindet, die neueste „alte Version“, die die aktuelle Transaktion sehen kann. Ansicht lesenEs handelt sich um eine Sammlung aller aktuell aktiven Transaktionen (Transaktionen, die noch nicht festgeschrieben wurden), wenn die Transaktion geöffnet wird. Mit anderen Worten ist die Leseansicht die Leseansicht, die generiert wird, wenn eine Transaktion einen Snapshot-Lesevorgang ausführt. In dem Moment, in dem der Snapshot-Lesevorgang von der Transaktion ausgeführt wird, wird ein Snapshot des aktuellen Datenbanksystems generiert, der die ID der aktuell aktiven Transaktion im System aufzeichnet und verwaltet.
Der Gesamtprozess der MVCC-Implementierung:Zusammenfassen
siehe:[MySQL-Hinweise] MySQLs MVCC und Implementierungsprinzipien richtig verstehen (empfohlen) MySQL · Engine-Funktionen · InnoDB-Transaktionssystem (taobao.org) Detaillierte Erklärung von mvcc – Jianshu (jianshu.com) Damit schließen wir diesen Artikel zur eingehenden Untersuchung der MySQL-Mehrversions-Parallelitätskontrolle MVCC ab. Ich hoffe, dass es für jedermanns Studium hilfreich sein wird, und ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So ändern Sie die Farbe der gesamten Zeile (tr), wenn die Maus in HTML stoppt
>>: CSS3-Übergangsrotationsperspektive, 2D3D-Animation und andere Effektbeispielcodes
Als ich vor ein paar Tagen ein dreispaltiges Layou...
Inhaltsverzeichnis Vorwort 1. Die Bedeutung der K...
Einschließlich der Verwendung von Kontrollkästchen...
Problembeschreibung: Nach der Ausführung von dock...
Dynamisches Implementieren eines einfachen sekund...
In diesem Artikel werden anhand von Beispielen di...
Beim Setzen des Textes im Suchtextfeld springt di...
beschreiben: fuser kann anzeigen, welches Program...
Phänomen: Wandeln Sie das Div in einen Kreis, ein...
Inhaltsverzeichnis 1. Trigger-Einführung 1. Was i...
Oftmals wird nach der Fertigstellung eines Webdes...
Wenn ein Unternehmen seine Benutzerbasis vergröße...
Konfiguration der Hostdatei des Linux-Servers Die...
Früher wusste ich nur, wie ich zum Springen das Na...
Inhaltsverzeichnis 1 Die allgemeinen Regeln zum E...