Heim >Datenbank >MySQL-Tutorial >So lösen Sie nicht wiederholbare Lesevorgänge in MySQL

So lösen Sie nicht wiederholbare Lesevorgänge in MySQL

coldplay.xixi
coldplay.xixiOriginal
2020-09-02 13:50:198971Durchsuche

MySQLs Methode zur Lösung nicht wiederholbarer Lesevorgänge: Die MVCC-Mehrversions-Parallelitätskontrolle verwendet zwei versteckte Spalten nach jedem Datenelement, nämlich die Erstellungsversionsnummer und die Löschversionsnummer. Jede Transaktion wird erhöht Versionsnummer.

So lösen Sie nicht wiederholbare Lesevorgänge in MySQL

【Verwandte Lernempfehlung: MySQL-Lernen

MySQL-Methode zum Lösen nicht wiederholbarer Lesevorgänge:

In MySQL ist die Standard-Transaktionsisolationsstufe wiederholbar fähig- read) ), um nicht wiederholbares Lesen zu lösen, verwendet innodb mvcc (Multi-Version Concurrency Control), um dieses Problem zu lösen.

mvcc verwendet zwei versteckte Spalten (Versionsnummer erstellen und Versionsnummer löschen), die nach jedem Datenelement hinzugefügt werden. Jede Transaktion hat zu Beginn eine steigende Versionsnummer. Neu hinzugefügt:

insert into user (id,name,age)values(1,"张三",10);

So lösen Sie nicht wiederholbare Lesevorgänge in MySQL

Update :

update user set age = 11 where id = 1;

Der Aktualisierungsvorgang wird durch Löschen + Hinzufügen implementiert. Markieren Sie zunächst die aktuellen Daten als gelöscht um die gelöschte Versionsnummer der Daten direkt auf die Versionsnummer der aktuellen Transaktion zu aktualisieren Folgende Bedingungen müssen erfüllt sein:

1. Bei der Abfrage muss die Versionsnummer der aktuellen Transaktion größer oder gleich der Erstellungsversionsnummer sein kleiner sein als die gelöschte Versionsnummer. Das heißt: create_version

Das obige ist der detaillierte Inhalt vonSo lösen Sie nicht wiederholbare Lesevorgänge in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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