Dieser Artikel bietet Ihnen eine Einführung in die Verwendung von MySQLs MVCC. Ich hoffe, dass er für Freunde hilfreich ist.
MVCC (Multi-version Concurrency Control)
Funktion: In vielen Fällen können Sperrvorgänge vermieden und der Overhead reduziert werden.
MVCC unter InnoDB
wird implementiert, indem hinter jeder Datensatzzeile zwei versteckte Spalten gespeichert werden, die Erstellungszeit der Zeile und die Ablaufzeit der Zeile (Löschzeit). Die Zeit bezieht sich hier auf die Systemversionsnummer. Jedes Mal, wenn etwas Neues gestartet wird, erhöht sich die Systemversionsnummer automatisch. Die Systemversionsnummer zu Beginn der Transaktion wird als Versionsnummer der Transaktion verwendet, die zum Vergleich mit der Versionsnummer jeder abgefragten Datensatzzeile verwendet wird.
Spezifische Operationen von MVCC unter der Isolationsstufe REPEATABLE READ
SELECT
InnoDB findet nur Datenzeilen, deren Version älter ist als die aktuelle Transaktionsversion (Zeile). Systemversionsnummer
ist entweder undefiniert oder größer als die aktuelle Versionsnummer des Dings. Dadurch wird sichergestellt, dass die von der Transaktion gelesenen Zeilen nicht vor dem Start der Transaktion gelöscht werden.
Nur Datensätze, die die beiden oben genannten Bedingungen erfüllen, können die Abfrageergebnisse zurückgeben.
INSERT
InnoDB speichert die aktuelle Systemversionsnummer als Zeilenversionsnummer für jede neu eingefügte Zeile.
UPDATE
InnoDB fügt eine neue Zeile mit Datensätzen ein, speichert die aktuelle Systemversionsnummer als Zeilenversionsnummer und speichert die aktuelle Systemversionsnummer in der ursprünglichen Zeile als Zeilenlöschungskennung.
LÖSCHEN
InnoDB speichert die aktuelle Systemversionsnummer als Löschkennung für jede gelöschte Zeile.
Dieser Artikel ist hier zu Ende. Weitere spannende Inhalte finden Sie in der Spalte MySQL-Tutorial-Video auf der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von MySQLs MVCC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!