1. Pessimistische Sperre 1. Exklusive Sperre Wenn eine Transaktion Daten verarbeitet, wird dieser Teil der Daten erst dann entsperrt, wenn der Vorgang abgeschlossen ist. Dadurch wird verhindert, dass andere Prozesse die Daten in der Tabelle lesen oder ändern. 2. Implementierung: In den meisten Fällen wird der Sperrmechanismus der Datenbank verwendet. Im Allgemeinen wird „select ... for update“ verwendet, um die ausgewählten Daten zu sperren, z. B. „select * from account where name="Max" for update sql Die Anweisung sperrt alle Datensätze in der Kontotabelle, die die Abrufbedingungen erfüllen (name="Max"). Bevor diese Transaktion festgeschrieben wird (die Sperre während der Transaktion wird aufgehoben, wenn die Transaktion festgeschrieben wird), kann die Außenwelt diese Datensätze nicht ändern. 2. Optimistische Sperre 1. Wenn jemand vor Ihnen ein Update durchführt, sollte Ihr Update abgelehnt werden und der Benutzer kann es erneut durchführen. 2.
Einführung: In diesem Artikel werden die Interpretationssperre (gemeinsame Sperre) und die Schreibsperre (exklusive Sperre) erläutert. 2. Sperrgranularität: Tabellensperre (Tabellensperre), Sperre auf Zeilenebene (Zeilensperre). ) 3. Optimistische Sperre und pessimistische Sperre Pessimistische Sperre Exklusive Sperre: Wenn eine Transaktion Daten verarbeitet, wird dieser Teil der Daten gesperrt, bis der Vorgang abgeschlossen ist, und dann entsperrt. Nur andere Transaktionsvorgänge können auf diesem Teil der Daten ausgeführt werden. Dadurch wird verhindert, dass andere Prozesse die Daten in der Tabelle lesen oder ändern. Implementierung: Verwenden Sie im Allgemeinen select ...for update, um die ausgewählten Daten zu sperren, z. B.
Einführung: Immer wenn mehrere Abfragen gleichzeitig Daten ändern müssen, treten Probleme bei der Parallelitätskontrolle auf. Hier besprechen wir die Parallelitätskontrolle von MySQL auf zwei Ebenen: der Serverschicht und der Speicher-Engine-Schicht. Parallelitätskontrolle ist ein großes Thema, und es gibt eine große Menge theoretischer Literatur, die es ausführlich behandelt. Hier diskutieren wir nur kurz, wie MySQL das gleichzeitige Lesen und Schreiben steuert. Am Beispiel der E-Mail-Box des Unix-Systems ist das typische Mbox-Dateiformat sehr einfach. Alle E-Mails in einem Mbox-Postfach werden zusammen serialisiert und Ende an Ende verbunden. Dieses Format ist nützlich zum Lesen und Feixi
3 [MySQL] Multi-Version-Parallelitätskontrolle
Einführung: Die Implementierung der meisten Transaktionsspeicher-Engines in MySQL ist keine einfache Sperre auf Zeilenebene. Basierend auf der Überlegung, die Parallelitätsleistung zu verbessern, implementieren sie im Allgemeinen gleichzeitig die Multiversions-Parallelitätskontrolle (MVCC). Nicht nur MySQL, sondern auch andere Datenbanksysteme wie Oracle und PostgreSQL implementieren MVCC, ihre Implementierungsmechanismen sind jedoch unterschiedlich, da es keinen einheitlichen Standard für MVCC gibt. MVCC kann als Variante der Sperrung auf Zeilenebene angesehen werden, vermeidet jedoch in vielen Fällen Sperrvorgänge, sodass der Overhead geringer ist. Obwohl die Implementierungsmechanismen unterschiedlich sind, implementieren die meisten von ihnen
4 Detaillierte Erläuterung des Java-Parallelitätskontrollmechanismus
Einführung: In der allgemeinen Entwicklung sehe ich oft, dass viele Studenten nur einige grundlegende Methoden im Umgang mit dem Java-Modell für die gleichzeitige Entwicklung verwenden. Zum Beispiel Volatile, synchronisiert. Erweiterte Parallelitätspakete wie Lock und Atomic werden von vielen Menschen nicht oft verwendet. Ich denke, dass die meisten Gründe auf das Fehlen von Eigenschaften des Prinzips zurückzuführen sind. Wer kann in der geschäftigen Entwicklungsarbeit das richtige Parallelitätsmodell genau erfassen und anwenden
Einführung: Exklusive Sperren in der PHP-Parallelitätskontrolle
6. PHP Redis Parallelitätskontrolle Redis herunterladen Redis Cluster Redis Visualisierungstool
Einführung: Redis: PHP-Redis-Parallelitätskontrolle: Für die Parallelitätskontrolle können Sie memcacheq, redirs channle und andere Methoden verwenden Zur Funktionsweise von Redis verwendet Redis hauptsächlich die drei Funktionen lPush llen und lPop in der Redis-Liste. lLen – Löschen Sie die erste in der Liste und geben Sie sie zurück eins in die Liste.
7 Mit Shmop ist das so, ich brauche es häufig im Programm. Bei der Verarbeitung eines Datenelements wollte ich MySQL nicht jedes Mal abfragen, also habe ich die zu verwendenden Datensätze herausgenommen und Shmop verwendet, um sie für später im Speicher zu speichern Änderung. Während des Schreibvorgangs fiel mir jedoch plötzlich ein Problem mit der Parallelitätskontrolle ein und ich wusste nicht, wie ich es lösen sollte: Funktion function1() {Speicherdaten für längere Zeit lesen (geänderte Zeile x1) Speicherdaten schreiben} Funktion Funktion2
8.Probleme im Zusammenhang mit Shmop
Einführung: Das Problem mit Shmop ist folgendes: Ich brauche es in der Mit diesem Programm verarbeite ich häufig Daten und möchte MySQL nicht jedes Mal abfragen. Deshalb nehme ich die zu verwendenden Datensätze heraus und verwende shmop, um sie zur späteren Änderung im Speicher zu speichern. Während des Schreibvorgangs fiel mir jedoch plötzlich ein Problem mit der Parallelitätskontrolle ein und ich wusste nicht, wie ich es lösen sollte: Funktion function1() {Speicherdaten für längere Zeit lesen (geänderte Zeile x1) Speicherdaten schreiben} Funktion Funktion2
9.Der Grund, warum die Access-Datenbank „nicht gespeichert werden kann; wird von einem anderen Benutzer gesperrt“
Einleitung: Die Parallelitätskontrolle von ACCESS ist sehr schlecht. Denken Sie daran, die Datenbank nach jedem Vorgang zu schließen
10Vergleich der Parallelitätskontrolle (Sperre) zwischen DB2 und Oracle_Oracle Application_Script Home
Einführung: Vergleich der Parallelitätskontrolle (Sperren) zwischen DB2 und Oracle
[Verwandte Q&A-Empfehlungen]:Multithreading – Java's notify/notifyAll: Wie benachrichtige ich den angegebenen Thread?
java – Wie kann verhindert werden, dass gespeicherte Erinnerungsinformationen mit demselben Benutzernamen gelöscht werden, nachdem Spring Security die Sitzungs-Parallelitätskontrolle aktiviert hat? Wie zeige ich ausgeblendete Spalten einer MySQL-Tabelle an? Optimistische Parallelitätskontrolle – warum Redis optimistisches Sperren verwendet, die MySQL-Datenbank jedoch nicht. Welche?
Das obige ist der detaillierte Inhalt vonZusammenfassung von 10 Beispiel-Tutorials zur Parallelitätskontrolle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!