Heim Datenbank MySQL-Tutorial Gängige MySQL-Sperrtypen

Gängige MySQL-Sperrtypen

Dec 21, 2023 am 08:52 AM
- Zeilensperre - Lesesperre (gemeinsame Sperre) - Schreibsperre (exklusive Sperre)

MySQL 中常见的锁类型

Gemeinsame Sperrtypen in MySQL, spezifische Codebeispiele sind erforderlich

Einführung:
Wenn in der Datenbank mehrere Clients gleichzeitig dieselben Daten lesen oder ändern, treten Probleme beim gleichzeitigen Betrieb auf. Um die Konsistenz und Integrität der Daten sicherzustellen, verwendet die Datenbank-Engine einen Sperrmechanismus, um den Zugriff auf gemeinsam genutzte Daten zu steuern. Als häufig verwendete relationale Datenbank bietet MySQL auch verschiedene Sperrtypen. In diesem Artikel werden gängige Sperrtypen in MySQL vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Shared Lock
Shared Lock (auch Lesesperre genannt) ist eine Sperre, die zum gleichzeitigen Lesen verwendet wird. Mehrere Clients können gleichzeitig gemeinsame Sperren erwerben, ohne sich gegenseitig zu blockieren. Gemeinsame Sperren können die Konsistenz der von mehreren Clients gleichzeitig gelesenen Daten sicherstellen.

Beispielcode:

-- Verbindung 1:
TRANSAKTION STARTEN;
SELECT * FROM table1 WHERE id = 1 LOCK IN SHARE MODE
-- Verbindung 2: (Ausgeführt, bevor Verbindung 1 die gemeinsame Sperre aufhebt)
TRANSAKTION STARTEN;
SELECT * FROM table1 WHERE id = 1 LOCK IN SHARE MODE;

Im obigen Code haben sowohl Verbindung 1 als auch Verbindung 2 die gemeinsame Sperre erhalten und können die Daten mit id=1 in der Tabelle table1 gleichzeitig lesen .

2. Exklusive Sperre
Eine exklusive Sperre (auch Schreibsperre genannt) ist eine Sperre, die zum gleichzeitigen Schreiben oder Ändern verwendet wird. Wenn mehrere Clients gleichzeitig dieselben Daten schreiben oder ändern, kann die exklusive Sperre sicherstellen, dass nur ein Client die Daten schreiben kann, wodurch die Integrität der Daten sichergestellt wird.

Beispielcode:

-- Verbindung 1:
TRANSAKTION STARTEN;
SELECT * FROM table1 WHERE id = 1 FOR UPDATE;
-- Verbindung 2: (Ausgeführt, bevor Verbindung 1 die exklusive Sperre aufhebt)
TRANSAKTION STARTEN;
AUSWÄHLEN * FROM table1 WHERE id = 1 FOR UPDATE;

Im obigen Code haben sowohl Verbindung 1 als auch Verbindung 2 exklusive Sperren erworben und nur Verbindung 1 kann die Daten mit id=1 in die Tabelle table1 schreiben.

3. Absichtssperre
Die Absichtssperre ist eine Sperre, die zur Koordinierung der Beziehung zwischen gemeinsam genutzten Sperren und exklusiven Sperren verwendet wird. Wenn eine Transaktion eine gemeinsame Sperre oder eine exklusive Sperre für eine Tabelle erhält, kann die Absichtssperre einen Warnmechanismus bereitstellen, damit andere Transaktionen den Status der Sperre kennen. Absichtssperren werden in zwei Typen unterteilt, nämlich gemeinsame Absichtssperren (IS) und exklusive Absichtssperren (IX).

Beispielcode:

-- Verbindung 1:
TRANSAKTION STARTEN;
TABELLEN-TABELLE READ;

Im obigen Code erhält Verbindung 1 die gemeinsame Absichtssperre, und Verbindung 2 kann auch die gemeinsame Absichtssperre erwerben und die Daten der Tabelle Tabelle 1 lesen.

4. Zeilensperre

Zeilensperre ist eine Sperre auf Datenzeilenebene. Wenn mehrere Transaktionen gleichzeitig verschiedene Zeilen derselben Tabelle bearbeiten, können Zeilensperren sicherstellen, dass nur eine Transaktion eine bestimmte Zeile ändern kann, wodurch die Effizienz des gleichzeitigen Zugriffs verbessert wird.

Beispielcode:

-- Verbindung 1:

START TRANSACTION;

SELECT * FROM table1 WHERE id = 1 FOR UPDATE;

-- Verbindung 2: (Ausgeführt, bevor Verbindung 1 die Zeilensperre aufhebt)
START TRANSACTION;
SELECT * FROM table1 WHERE id = 2 FOR UPDATE;

Im obigen Code erhält Verbindung 1 die Zeilensperre und ändert die Daten mit id=1 in Tabelle1. Verbindung 2 wartet darauf, dass Verbindung 1 die Sperre aufhebt, bevor sie sie erhalten und ändern kann die ID. =2 Daten.

Fazit:

Dieser Artikel stellt die gängigen Sperrtypen in MySQL vor, einschließlich gemeinsamer Sperren, exklusiver Sperren, Absichtssperren und Zeilensperren, und bietet spezifische Codebeispiele. Das Verständnis und die Beherrschung der Verwendung von Sperren ist entscheidend für die Gewährleistung der Datenkonsistenz und -integrität. In der tatsächlichen Entwicklung ist es erforderlich, den geeigneten Sperrtyp basierend auf den spezifischen Geschäftsanforderungen und gleichzeitigen Zugriffsbedingungen auszuwählen und den Sperrmechanismus rational zu verwenden, um die Korrektheit und Effizienz des Datenbankbetriebs sicherzustellen.

Das obige ist der detaillierte Inhalt vonGängige MySQL-Sperrtypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

Wie behandeln Sie große Datensätze in MySQL? Wie behandeln Sie große Datensätze in MySQL? Mar 21, 2025 pm 12:15 PM

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

Erläutern Sie InnoDB Volltext-Suchfunktionen. Erläutern Sie InnoDB Volltext-Suchfunktionen. Apr 02, 2025 pm 06:09 PM

Die Volltext-Suchfunktionen von InnoDB sind sehr leistungsfähig, was die Effizienz der Datenbankabfrage und die Fähigkeit, große Mengen von Textdaten zu verarbeiten, erheblich verbessern kann. 1) InnoDB implementiert die Volltext-Suche durch invertierte Indexierung und unterstützt grundlegende und erweiterte Suchabfragen. 2) Verwenden Sie die Übereinstimmung und gegen Schlüsselwörter, um den Booleschen Modus und die Phrasesuche zu unterstützen. 3) Die Optimierungsmethoden umfassen die Verwendung der Word -Segmentierungstechnologie, die regelmäßige Wiederaufbauung von Indizes und die Anpassung der Cache -Größe, um die Leistung und Genauigkeit zu verbessern.

Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Mar 19, 2025 pm 03:52 PM

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Mar 19, 2025 pm 03:48 PM

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

Wie erstellen Sie Indizes für JSON -Spalten? Wie erstellen Sie Indizes für JSON -Spalten? Mar 21, 2025 pm 12:13 PM

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

See all articles