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
1. MySQL-Datenbank herunterladen und installieren...
Inhaltsverzeichnis Hintergrund: brauchen: Wirkung...
Löschprozedur sp_name/ Zuvor habe ich Ihnen die G...
Inhaltsverzeichnis Warum GZIP-Komprimierung verwe...
<br />Ich habe bereits zwei Artikel geschrie...
Wenn Programmierer täglich TypeScript-/JavaScript...
Windows 10 1903 ist die neueste Version des Windo...
Inhaltsverzeichnis 1. Das einfachste Beispiel 2. ...
Vorwort Nach der Bereitstellung des Servers besuc...
Vorwort Ich habe viele Blogs gelesen und von viel...
Vorwort: Eines Tages baute ich einen MySQL-Dienst...
Da es im Internet nur wenige und unzureichende In...
React ist eine JAVASCRIPT-Bibliothek zum Erstelle...
Inhaltsverzeichnis 1. Lernziele 1.1. Beherrschen ...
Inhaltsverzeichnis Überblick So erreichen Sie es ...