Dieser Artikel stellt Ihnen Säure in MySQL vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
1. Grundelemente von Transaktionen (ACID)
1. Atomarität: Nach Beginn einer Transaktion sind alle Vorgänge entweder abgeschlossen oder nicht abgeschlossen, und es ist unmöglich, in der Mitte zu stagnieren. Wenn während der Transaktionsausführung ein Fehler auftritt, wird die Transaktion auf den Zustand vor Beginn der Transaktion zurückgesetzt und alle Vorgänge werden so ausgeführt, als ob sie nicht stattgefunden hätten. Das heißt, die Materie ist ein unteilbares Ganzes, genau wie die in der Chemie erlernten Atome, die die Grundeinheiten der Materie darstellen.
2. Konsistenz: Vor und nach Beginn und Ende der Transaktion werden die Integritätsbeschränkungen der Datenbank nicht zerstört. Wenn A beispielsweise Geld an B überweist, ist es unmöglich, dass A das Geld abzieht, B es aber nicht erhält. Tatsächlich ist Konsistenz auch eine Manifestation der Atomizität
3. Isolation: Gleichzeitig darf nur eine Transaktion dieselben Daten anfordern, und es gibt keine Interferenzen zwischen verschiedenen Transaktionen. Beispielsweise kann A Geld von einer Bankkarte abheben, bevor der Abhebungsvorgang von A abgeschlossen ist. Serialisierung
4. Haltbarkeit: Nach Abschluss der Transaktion werden alle Aktualisierungen der Datenbank durch die Transaktion in der Datenbank gespeichert und können nicht zurückgesetzt werden. 2. Probleme mit der Parallelität von Transaktionen in der Tabelle. Die tatsächlichen Daten sind inkonsistent
2. Nicht wiederholbares Lesen: Transaktion A liest dieselben Daten mehrmals, und Transaktion B aktualisiert und übermittelt die Daten während der mehrfachen Lesevorgänge von Transaktion A, was dazu führt, dass Transaktion A dieselben liest Daten mehrmals, die Ergebnisse sind inkonsistent. Das Leseergebnis stimmt nicht mit dem letzten Ergebnis überein 3. Phantomlesung: Systemadministrator A hat die Noten aller Schüler in der Datenbank von bestimmten Ergebnissen in ABCDE-Noten geändert, aber Systemadministrator B hat zu diesem Zeitpunkt einen Datensatz mit bestimmten Ergebnissen eingefügt Systemadministrator A schloss die Änderung ab und stellte fest, dass noch ein Datensatz vorhanden war, der nicht geändert wurde. Dies war wie eine Halluzination. Dies wird als Phantomlesung bezeichnet. Es wurde modifiziert, dann aber geändert, was zu einem anderen Ergebnis als erwartet führte
Zusammenfassung: Nicht wiederholbares Lesen und Phantomlesen werden leicht verwechselt. Nicht wiederholbares Lesen konzentriert sich auf Änderungen, und Phantomlesen konzentriert sich auf das Hinzufügen oder Löschen. Um das Problem nicht wiederholbarer Lesevorgänge zu lösen, müssen Sie nur die Zeilen sperren, die die Bedingungen erfüllen. Um das Problem der Phantom-Lesevorgänge zu lösen, müssen Sie die Tabelle 3 sperren. MySQL-Transaktionsisolationsstufe Phantom-Lesen -uncommitted
yes
yes
yes
read-committed
yes | Repeatable read(repeatable-read) | nein | |
ja | serialisierbar(serialisierbar) | nein | |
nein |
Das obige ist der detaillierte Inhalt vonWas ist Säure in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!