Unterschied:
Nicht wiederholbares Lesen: Unter den gleichen Bedingungen ändert sich der Wert der gelesenen Daten, wenn wir sie erneut lesen .
Phantomlesung: Unter gleichen Bedingungen ist die Anzahl der beim ersten und zweiten Mal ausgelesenen Datensätze unterschiedlich.
Detaillierte Analyse:
1. Nicht wiederholbares Lesen
Unter den gleichen Bedingungen ist der Wert der gelesenen Daten derselbe, wenn wir Lesen Sie es noch einmal. Etwas hat sich geändert.
Beispiel:
In Transaktion 1 liest A sein Gehalt als 1000, aber der Vorgang von Transaktion 1 ist zu diesem Zeitpunkt noch nicht abgeschlossen und es gibt später einen weiteren identischen Lesevorgang.
con1 = getConnection(); select salary from employee where employeeName ="A";
In Transaktion 2 änderte das Finanzpersonal das Gehalt von A auf 2000 und reichte die Transaktion ein.
con2 = getConnection(); update employee set salary = 2000 where employeeName = "A"; con2.commit();
Wenn A in Transaktion 1 sein Gehalt erneut liest, beträgt das Gehalt 2000.
select salary from employee where employeeName ="A";
Die Ergebnisse von zwei Lesevorgängen in einer Transaktion sind inkonsistent, was zu nicht wiederholbaren Lesevorgängen führt.
2. Phantomlesung
Unter den gleichen Bedingungen ist die Anzahl der ausgelesenen Datensätze beim ersten und zweiten Mal unterschiedlich.
Beispiel:
Es gibt derzeit 5 Mitarbeiter mit einem Gehalt von 1.000.
Transaktion 1: Lesen Sie alle Mitarbeiter mit einem Gehalt von 1.000 und lesen Sie insgesamt 10 Datensätze.
con1 = getConnection(); Select * from employee where salary =1000;
Zu diesem Zeitpunkt wurde durch eine andere Transaktion ein Mitarbeiterdatensatz in die Mitarbeitertabelle eingefügt, und das Gehalt betrug ebenfalls 1.000
con2 = getConnection(); Insert into employee(employeeName,salary) values("B",1000); con2.commit();
Transaktion 1 las erneut alle Mitarbeiter mit einem Gehalt von 1.000 Insgesamt wurden 6 Datensätze gelesen, wodurch eine Phantomlesung entsteht.
//con1 select * from employee where salary =1000;
Empfohlenes Tutorial: MySQL-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Phantom-Read und nicht wiederholbarem Read?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!