Das Konzept des Schlosses ①. Im wirklichen Leben ist ein Schloss ein Werkzeug, das wir verwenden, wenn wir uns vor der Außenwelt verstecken möchten. ②. In einem Computer ist es ein Mechanismus zur Koordination mehrerer Prozesse oder Threads, um gleichzeitig auf eine Ressource zuzugreifen. ③. In der Datenbank besteht neben der Konkurrenz um herkömmliche Computerressourcen (CPU, RAM, E/A usw.) auch die Gefahr, dass Daten von vielen Benutzern gemeinsam genutzt werden und auf sie zugegriffen wird. ④. Die Sicherstellung der Konsistenz und Effektivität gleichzeitiger Datenzugriffe ist ein Problem, das alle Datenbanken lösen müssen. ⑤. Sperrkonflikte sind ebenfalls ein wichtiger Faktor, der die Leistung gleichzeitiger Zugriffe auf die Datenbank beeinträchtigt. Übersicht über MySQL-Sperren Im Vergleich zu anderen Datenbanken ist der Sperrmechanismus von MySQL relativ einfach. Sein bemerkenswertestes Merkmal ist, dass verschiedene Speicher-Engines unterschiedliche Sperrmechanismen unterstützen. Beispielsweise verwenden die Speicher-Engines MyISAM und MEMORY Sperren auf Tabellenebene. Die BDB-Speicher-Engine verwendet Sperren auf Seitenebene, unterstützt aber auch Sperren auf Tabellenebene. Die InnoDB-Speicher-Engine unterstützt sowohl Sperren auf Zeilen- als auch auf Tabellenebene, standardmäßig wird jedoch die Sperre auf Zeilenebene verwendet. Sperre auf Tabellenebene: Die Sperre auf Tabellenebene ist die Sperre mit der größten Sperrgranularität in MySQL, was bedeutet, dass die gesamte Tabelle des aktuellen Vorgangs gesperrt wird. Es weist einen geringen Overhead und eine schnelle Sperrung auf. Es kommt nicht zu Deadlocks, die Sperrgranularität ist groß, die Wahrscheinlichkeit eines Sperrkonflikts ist am höchsten und die Parallelität ist am geringsten. Sperre auf Zeilenebene: Die Sperre auf Zeilenebene ist die feinkörnigste Sperre in MySQL. Dies bedeutet, dass nur die aktuell bearbeitete Zeile gesperrt ist. Der Overhead ist hoch und die Sperrung ist langsam. Es kann zu Deadlocks kommen. Die Sperrgranularität ist am geringsten, die Wahrscheinlichkeit eines Sperrkonflikts am geringsten und die Parallelität am höchsten. Sperre auf Seitenebene: Eine Sperre auf Seitenebene ist ein Sperrtyp in MySQL, dessen Sperrgranularität zwischen der Sperre auf Zeilenebene und der Sperre auf Tabellenebene liegt. Sperren auf Tabellenebene sind schnell, weisen aber viele Konflikte auf. Es gibt weniger Konflikte auf Zeilenebene, aber die Geschwindigkeit ist langsam. Daher wird ein Kompromiss auf Seitenebene eingeführt, um jeweils eine Gruppe benachbarter Datensätze zu sperren. BDB unterstützt Sperren auf Seitenebene. Der Overhead und die Sperrzeit liegen zwischen Tabellensperren und Zeilensperren. Es können Deadlocks auftreten. Die Sperrgranularität liegt zwischen Tabellensperren und Zeilensperren und die Parallelität ist durchschnittlich. Aus den oben genannten Merkmalen ist ersichtlich, dass es schwierig ist, allgemein zu sagen, welches Schloss besser ist. Wir können nur anhand der Merkmale der spezifischen Anwendung sagen, welches Schloss besser geeignet ist! ! Ausschließlich aus der Perspektive von Sperren: Sperren auf Tabellenebene eignen sich besser für Anwendungen, die abfrageorientiert sind und Daten nur in kleinen Mengen basierend auf Indexbedingungen aktualisieren, wie z. B. Webanwendungen. Zeilensperren eignen sich besser für Anwendungen mit einer großen Anzahl gleichzeitiger Aktualisierungen einer kleinen Menge unterschiedlicher Daten basierend auf Indexbedingungen und gleichzeitigen Abfragen, wie z. B. einige Systeme zur Online-Transaktionsverarbeitung (OLTP). Beispiel ① Wenn beim Kauf eines Produkts nur ein Artikel auf Lager ist und zwei Personen gleichzeitig versuchen, ihn zu kaufen, wer bekommt ihn? ②. Transaktionen werden verwendet, um zuerst die Artikeldaten aus der Inventartabelle abzurufen, dann die Bestellung einzugeben und nach der Zahlung die Zahlungstabelleninformationen einzugeben. ③. Aktualisieren Sie die Warenmenge. In diesem Prozess kann die Verwendung von Sperren begrenzte Ressourcen schützen und den Widerspruch zwischen Isolation und Parallelität lösen. Sperrklassifizierung Nach Betrieb:
Nach Partikelgröße:
Oben finden Sie alle relevanten Wissenspunkte zu MySQL-Sperren. Vielen Dank fürs Lesen und Ihre Unterstützung für 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: So überprüfen Sie, ob die Firewall in Linux ausgeschaltet ist
>>: js, um einen einfachen Taschenrechner zu erstellen
Ⅰ. Problembeschreibung: Verwenden Sie HTML+CSS, u...
*** Beispiel für das Festlegen des Stils eines Hy...
Erstellen Sie einen Benutzer: Erstellen Sie den B...
AWS – Amazons Cloud-Computing-Serviceplattform Ic...
Die Bildintegrationstechnologie, die von YAHOO in...
Code kopieren Der Code lautet wie folgt: <!DOC...
verwenden Flexible Boxen spielen beim Front-End-L...
Dieser Artikel beschreibt MySQL-Mehrtabellenabfra...
Befehl zum Hinzufügen einer Route: 1.Route hinzuf...
1. Kurze Einführung in die Veranstaltung Ein Erei...
Häufig verwendete Anzeigebefehle für MySQL 1. Zei...
In diesem Artikelbeispiel wird der spezifische Ja...
Dieses Skript kann die Vorgänge zum Starten, Stop...
(1) Experimentelle Umgebung youxi1 192.168.5.101 ...
Inhaltsverzeichnis Überblick Code-Implementierung...