Pessimistische Sperren haben, wie der Name schon sagt, starke exklusive und exklusive Eigenschaften. Sie beziehen sich auf eine konservative Haltung gegenüber Daten, die von der Außenwelt verändert werden. Der optimistische Sperrmechanismus verwendet einen entspannteren Sperrmechanismus. Im Vergleich zum pessimistischen Sperren ist die optimistische Sperre auch ein Mechanismus zur Vermeidung von Datenverarbeitungsfehlern, die durch das Lesen von Datenbankphantomen, lange Geschäftsverarbeitungszeiten und andere Gründe verursacht werden.
Optimistisches Sperren (Optimistisches Sperren)
Optimistisches Sperren ist relativ zum pessimistischen Sperren, wobei Daten unter Normalbedingungen angenommen werden Unter bestimmten Umständen treten keine Konflikte auf. Wenn die Daten also zur Aktualisierung übermittelt werden, wird der Datenkonflikt offiziell erkannt. Wenn ein Konflikt festgestellt wird, wird eine Fehlermeldung an den Benutzer zurückgegeben, damit dieser entscheiden kann, was zu tun ist .
Baidu-Enzyklopädie:
Der optimistische Verriegelungsmechanismus übernimmt einen entspannteren Verriegelungsmechanismus. Optimistisches Sperren ist im Vergleich zum pessimistischen Sperren ein Mechanismus zur Vermeidung von Datenverarbeitungsfehlern, die durch Phantom-Lesevorgänge in der Datenbank und lange Geschäftsverarbeitungszeiten verursacht werden. Beim optimistischen Sperren wird jedoch nicht bewusst der Sperrmechanismus der Datenbank selbst verwendet die Daten selbst, um die Richtigkeit der Daten sicherzustellen.
Im Vergleich zum pessimistischen Sperren verwendet das optimistische Sperren bei der Verarbeitung der Datenbank nicht den von der Datenbank bereitgestellten Sperrmechanismus. Die allgemeine Methode zum Implementieren einer optimistischen Sperre besteht darin, die Datenversion aufzuzeichnen.
Die optimistische Parallelitätskontrolle geht davon aus, dass die Wahrscheinlichkeit eines Datenwettlaufs zwischen Transaktionen relativ gering ist. Gehen Sie daher so direkt wie möglich vor und sperren Sie nicht bis zur Übermittlung, sodass keine Sperren oder Deadlocks auftreten geschehen.
Pessimistische Sperre
Wenn Sie ein Datenelement in der Datenbank ändern möchten, um zu vermeiden, dass es gleichzeitig von anderen geändert wird, ist dies der beste Weg Sperren Sie die Daten direkt, um Parallelität zu verhindern. Diese Methode, bei der der Datenbanksperrmechanismus zum Sperren der Daten vor dem Ändern und anschließenden Ändern verwendet wird, wird als pessimistische Parallelitätskontrolle bezeichnet [auch bekannt als „pessimistische Sperre“, Pessimistic Concurrency Control, Abkürzung „PCC“].
Baidu-Enzyklopädie:
Pessimistisches Schloss weist, wie der Name schon sagt, starke exklusive und exklusive Eigenschaften auf. Es bezieht sich auf eine konservative Haltung gegenüber Daten, die von der Außenwelt geändert werden (einschließlich anderer aktueller Transaktionen des Systems und der Transaktionsverarbeitung von externen Systemen). Daher werden die Daten während des gesamten Datenverarbeitungsvorgangs unter Verschluss gehalten. Die Implementierung pessimistischer Sperren basiert häufig auf dem von der Datenbank bereitgestellten Sperrmechanismus (nur der von der Datenbankschicht bereitgestellte Sperrmechanismus kann die Exklusivität des Datenzugriffs wirklich garantieren. Andernfalls gibt es keinen Sperrmechanismus, selbst wenn er in diesem System implementiert ist garantieren, dass das externe System die Daten nicht verändert.
Der Grund, warum es pessimistisches Sperren genannt wird, liegt darin, dass es sich um eine Parallelitätskontrollmethode handelt, die eine pessimistische Einstellung gegenüber Datenänderungen hat. Wir glauben im Allgemeinen, dass die Wahrscheinlichkeit, dass Daten gleichzeitig geändert werden, relativ hoch ist, sodass sie vor der Änderung gesperrt werden müssen.
Pessimistische Sperren werden hauptsächlich in gemeinsame Sperren oder exklusive Sperren unterteilt
Geteilte Sperren [gemeinsame Sperren] werden auch als Lesesperren oder kurz S-Sperren bezeichnet. Wie der Name schon sagt, bedeutet eine gemeinsame Sperre, dass mehrere Transaktionen eine Sperre für dieselben Daten teilen können und alle auf die Daten zugreifen, diese jedoch nur lesen und nicht ändern können.
Exklusive Sperre [Exklusive Sperre] wird auch Schreibsperre oder kurz X-Sperre genannt. Wie der Name schon sagt, können exklusive Sperren nicht mit anderen Sperren koexistieren. Wenn eine Transaktion eine exklusive Sperre für eine Datenzeile erhält, können andere Transaktionen keine anderen Sperren für die Zeile erwerben, einschließlich gemeinsamer Sperren und exklusiver Sperren Datenzeilen lesen und ändern.
Pessimistische Parallelitätskontrolle ist eigentlich eine konservative Strategie „Erst die Sperre erhalten und dann zugreifen“, die eine Garantie für die Sicherheit der Datenverarbeitung bietet.
Im Hinblick auf die Effizienz verursacht der Sperrmechanismus jedoch zusätzlichen Overhead für die Datenbank und erhöht die Wahrscheinlichkeit eines Deadlocks. Darüber hinaus wird die Parallelität verringert. Wenn eine Transaktion eine Datenzeile sperrt, müssen andere Transaktionen auf die Verarbeitung der Transaktion warten, bevor sie diese Datenzeile verarbeiten.
Das obige ist der detaillierte Inhalt vonDefinition von pessimistischer Sperre und optimistischer Sperre. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!