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

Lösung zum Verlassen von Lücken zwischen BootStrap-Rastern

Inhaltsverzeichnis [Siehe ein Beispiel]: [Der urs...

Analyse von Multithread-Programmierbeispielen unter Linux

1 Einleitung Die Thread-Technologie wurde bereits...

Detailliertes Tutorial zum Ausführen von Selenium+Chromedriver auf dem Server

1. Einleitung Ich möchte Selenium verwenden, um D...

Docker-Konfiguration Alibaba Cloud Container Service-Betrieb

Konfigurieren des Alibaba Cloud Docker Container ...

Der Prozess der Installation und Konfiguration von Nginx in Win10

1. Einleitung Nginx ist ein kostenloser, quelloff...

JS, CSS und HTML zur Implementierung der Registrierungsseite

Eine mit HTML und CSS implementierte Registrierun...

Detaillierte Erklärung des Befehlsmodus in der Javascript-Praxis

Inhaltsverzeichnis Definition Struktur Beispiele ...

Erstellen Sie eine virtuelle Umgebung mit venv in Python3 in Ubuntu

1. Virtuelle Umgebung folgt dem Projekt, erstelle...