Empfohlenes Tutorial: SQL-Tutorial
Was ist ein Datenbank Gleichzeitige Operationen
Die Datenbank ist eine gemeinsam genutzte Ressource, die von mehreren Benutzern verwendet werden kann. Diese Benutzerprogramme können nacheinander ausgeführt werden, um auf die Datenbank zuzugreifen. Andere Benutzerprogramme müssen warten, bis dieses Benutzerprogramm beendet ist, bevor sie auf die Datenbank zugreifen können. Wenn ein Benutzerprogramm jedoch den Ein-/Ausgabeaustausch großer Datenmengen beinhaltet, ist das Datenbanksystem die meiste Zeit im Leerlauf. Um die Datenbankressourcen voll auszunutzen und die Eigenschaften gemeinsam genutzter Datenbankressourcen zu nutzen, sollte es daher mehreren Benutzern ermöglicht werden, parallel auf die Datenbank zuzugreifen. Dies führt jedoch dazu, dass mehrere Benutzerprogramme gleichzeitig auf dieselben Daten zugreifen. Wenn gleichzeitige Vorgänge nicht kontrolliert werden, wird möglicherweise auf falsche Daten zugegriffen, wodurch die Konsistenz der Datenbank zerstört wird. Die Qualität des Parallelitätskontrollmechanismus ist einer der wichtigen Indikatoren zur Messung der Leistung eines Datenbankverwaltungssystems .
Probleme, die durch gleichzeitige Datenbankoperationen verursacht werden
(1) Update verloren
Wenn zwei Wann Wenn ein oder mehrere Dinge dieselben Daten lesen und ändern, tritt ein Aktualisierungsverlustproblem auf, das heißt, das Ergebnis der Aktualisierung der letzten Transaktion wird durch die Aktualisierung der vorherigen Transaktion überschrieben. Das heißt, wenn die Transaktionen A und B gleichzeitig ausgeführt werden Wenn Transaktion A ausgeführt wird, hat Transaktion A die Daten geändert, aber B hat dieselben Daten geändert, bevor sie übermittelt wurden (beachten Sie, dass es sich bei den Daten zu diesem Zeitpunkt um die Daten handelt, für die A die Änderung noch nicht übermittelt hat), und die von A vorgenommenen Datenänderungen gehen verloren
(2) Nicht wiederholbares Lesen
Wenn zwei Daten bestimmte Daten lesen, führt eine andere Transaktion eine Aktualisierung der Daten durch und die aktuelle Transaktion liest die Daten erneut (hoffentlich). die gleichen wie beim ersten Lesen (derselbe Wert), die erhaltenen Daten unterscheiden sich von den vorherigen. Dies liegt daran, dass die Daten nach dem ersten Lesen von Transaktion B geändert wurden, was dazu führte, dass die Daten erneut gelesen wurden Anders als die zum ersten Mal gelesenen Daten. Dasselbe wie
(3) „Dirty Data“ lesen
Wenn eine Transaktion bestimmte Daten ändert, liest eine andere Transaktion die Der Grund dafür ist, dass die vorherige Transaktion die Änderung der geänderten Daten abgebrochen und die geänderten Daten auf ihren ursprünglichen Wert zurückgesetzt hat. Dann stimmen die von der letzten Transaktion gelesenen Daten nicht mit den verfügbaren Daten überein Dirty Data
Hinweis: Es gibt auch eine namens „Ghost Data“. Ghost Data ähnelt Dirty Data, aber Ghost Data bezieht sich auf Daten, die gelesen werden, nachdem die Transaktion festgeschrieben wurde, aber die vorherige Transaktion wird nach dem Lesen wiederhergestellt und schmutzige Daten. Daten beziehen sich auf Daten, die vor der Übermittlung gelesen wurden
Das obige ist der detaillierte Inhalt vonWelche Probleme können durch gleichzeitige Datenbankoperationen auftreten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!