Probleme mit Sperren in MySQL

Probleme mit Sperren in MySQL

Schlossklassifizierung:

Aus der Granularität der Datenoperationen:

Tischsperre: Während des Betriebs wird der komplette Tisch gesperrt. Zeilensperre: Bei einer Bedienung wird die aktuelle Bedienzeile gesperrt.

Nach Art der Datenoperation:

Lesesperre (Shared Lock): Es können mehrere Lesevorgänge gleichzeitig auf dieselben Daten angewendet werden, ohne dass sich diese gegenseitig beeinträchtigen. Schreibsperre (exklusive Sperre): Sie blockiert das Schreiben anderer Clients, bis der aktuelle Vorgang abgeschlossen ist.

Bildbeschreibung hier einfügen


Zeilentabellen-Sperrfunktionen:

Bildbeschreibung hier einfügen


MyISAM-Tabellensperren:

So fügen Sie eine Tabellensperre hinzu
MyISAM fügt vor der Ausführung einer Abfrageanweisung (SELECT) automatisch Lesesperren für alle beteiligten Tabellen hinzu.
INSERT usw.), wird die Schreibsperre automatisch zur betreffenden Tabelle hinzugefügt. Dieser Vorgang erfordert kein Eingreifen des Benutzers. Daher müssen Benutzer LOCK im Allgemeinen nicht direkt verwenden.
Der Befehl TABLE sperrt explizit eine MyISAM-Tabelle.

Bildbeschreibung hier einfügen

Kurz gesagt: Lesesperren blockieren Schreibvorgänge, aber keine Lesevorgänge. Eine Schreibsperre blockiert sowohl das Lesen als auch das Schreiben.

Darüber hinaus erfolgt die Lese-/Schreibsperrenplanung von MyISAM zuerst nach dem Schreibprinzip. Deshalb ist MyISAM nicht als Speicher-Engine für schreibdominante Tabellen geeignet. Da andere Threads nach Erhalt der Schreibsperre keine Vorgänge mehr ausführen können, erschwert eine große Anzahl von Aktualisierungen der Abfrage das Erhalten der Sperre, was zu einer dauerhaften Blockierung führt.


InnoDB-Zeilensperren

Einführung in Zeilensperren. Funktionen von Zeilensperren: Auf die InnoDB-Speicher-Engine ausgerichtet, hoher Overhead, langsame Sperren, Deadlocks können auftreten, minimale Sperrgranularität, geringste Wahrscheinlichkeit von Sperrkonflikten und höchste Parallelität.
Es gibt drei große Unterschiede zwischen InnoDB und MyISAM: Erstens unterstützt es Transaktionen, zweitens verwendet es Sperren auf Zeilenebene und drittens unterstützt es Fremdschlüssel.

Transaktionen:
Eine Transaktion ist eine logische Verarbeitungseinheit, die aus einer Gruppe von SQL-Anweisungen besteht.

Vier Hauptmerkmale von Transaktionen (ACID):

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über MySQL-Sperrprobleme. Weitere Informationen zu MySQL-Sperrproblemen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Analyse von MySQL-Lock-Wait- und Deadlock-Problemen
  • Detaillierte Analyse der MySQL-Sperrblockierung
  • Zusammenfassung der MySQL-Sperrwissenspunkte

<<:  Detaillierte Erläuterung des Prozesses zum Erstellen eines MQTT-Servers mit Docker

>>:  JavaScript implementiert coole Mouse-Tailing-Effekte

Artikel empfehlen

Der Aufruf der Suchmaschine auf der Seite erfolgt am Beispiel von Baidu

Heute ist mir plötzlich eingefallen, dass es cool ...

Besprechen Sie den Entwicklungstrend der Baidu Encyclopedia UI

<br />Die offizielle Version der Baidu-Enzyk...

Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten

Mysql konvertiert Abfrageergebnissatz in JSON-Dat...

So implementieren Sie ein responsives Layout mit CSS

Implementieren eines responsiven Layouts mit CSS ...

Design-Tipps: Wir glauben, es wird Ihnen gefallen

<br />Wenn Sie sich diesen Titel ansehen, ko...

Detaillierte Analyse des MySQL-Datentyps DECIMAL

Vorwort: Wenn wir Dezimalzahlen speichern müssen ...

Verwenden Sie reines CSS, um einen Switch-Effekt zu erzielen

Zuerst ist die Idee Um diesen Effekt zu erzielen,...

So lösen Sie das Problem des verstümmelten DOS-Fensters in MySQL

Das Problem mit dem verstümmelten Code ist folgen...

So konfigurieren Sie Nginx, um die Zugriffshäufigkeit derselben IP zu begrenzen

1. Fügen Sie den folgenden Code zu http{} in ngin...

Die Bilder in HTML werden direkt durch base64-kodierte Strings ersetzt

Kürzlich stieß ich auf eine Webseite, die zwar Bil...

Schreiben Sie mit CSS in drei Schritten einen Coupon für eine Shopping-Card

Heute ist der 618. und alle großen Einkaufszentre...

DIV-Hintergrund, halbtransparenter Text, nicht durchscheinender Stil

Der DIV-Hintergrund ist halbtransparent, aber die ...