Heim Datenbank MySQL-Tutorial Was sind die MySQL-Datenbanksperren?

Was sind die MySQL-Datenbanksperren?

May 08, 2019 am 09:29 AM
mysql数据库 Datenbanksperre

Die Sperren in der MySQL-Datenbank sind: 1. Gemeinsame Sperre, was bedeutet, dass die Daten gelesen werden; 2. Exklusive Sperre, was bedeutet, dass die Daten geschrieben werden; Ein Datensatz; 4. Absichtssperre, um die Art der Sperre offenzulegen, die für die nächste Zeile in einer Transaktion angefordert wird.

Was sind die MySQL-Datenbanksperren?

MySQL-Datenbanksperre

1 Sperre)

Gemeinsame Sperre (S) bedeutet das Lesen von Daten. Daher können mehrere Transaktionen gleichzeitig gemeinsame Sperren zu einem Objekt hinzufügen.

SQL-Anweisung, die eine gemeinsame Sperre generiert:

select * from ad_plan lock in share mode;
Nach dem Login kopieren

2. Exklusive Sperre (Exklusive Sperre, auch X-Sperre genannt)

Exklusive Sperre bedeutet, dass die data Schreibvorgänge ausführen. Wenn eine Transaktion einem Objekt eine exklusive Sperre hinzufügt, können andere Transaktionen keine weiteren Sperren hinzufügen.
SQL-Anweisung, die eine exklusive Sperre generiert:

 select * from ad_plan for update;
Nach dem Login kopieren

3. Zeilensperre (Zeilensperre)

Sperrt eine Zeile mit Datensätzen und betrifft nur einen Datensatz.

wird normalerweise in DML-Anweisungen wie INSERT, UPDATE, DELETE usw. verwendet.

InnoDB-Zeilensperre wird durch Sperren der Indexeinträge im Index implementiert. Dies unterscheidet sich von MySQL und Oracle, die durch Sperren der entsprechenden Datenzeilen im Datenblock implementiert werden.

Die Zeilensperren-Implementierungsfunktion von InnoDB bedeutet, dass InnoDB Sperren auf Zeilenebene nur verwendet, wenn Daten über Indexbedingungen abgerufen werden. Andernfalls verwendet InnoDB Tabellensperren!

4. Absichtssperre

Die Absichtssperre ist eine Sperre auf Tabellenebene. Ihr Designzweck besteht hauptsächlich darin, die Art der Sperre anzuzeigen, die für die nächste Zeile angefordert wird in einer Transaktion. Zwei Tabellensperren in InnoDB:
Absichtliche gemeinsame Sperre (IS): Zeigt an, dass die Transaktion das Hinzufügen einer gemeinsamen Sperre zur Datenzeile vorbereitet, was bedeutet, dass vor dem Hinzufügen einer gemeinsamen Sperre zu einer Datenzeile die IS-Sperre des Tabelle muss zuerst abgerufen werden;
Absichtliche exklusive Sperre (IX): Ähnlich wie oben bedeutet dies, dass die Transaktion das Hinzufügen einer exklusiven Sperre zur Datenzeile vorbereitet, was darauf hinweist, dass die Transaktion zuerst die IX-Sperre erhalten muss Tabelle, bevor einer Datenzeile eine exklusive Sperre hinzugefügt wird.
Absichtssperren werden von InnoDB automatisch hinzugefügt und erfordern keinen Benutzereingriff.
Für INSERT, UPDATE und DELETE fügt InnoDB den beteiligten Daten automatisch exklusive Sperren hinzu. Bei allgemeinen SELECT-Anweisungen fügt InnoDB keine Sperren hinzu und Transaktionen können durch die folgenden Anweisungen explizit gemeinsame Sperren oder exklusive Sperren hinzufügen.
Gemeinsame Sperre: AUSWÄHLEN … SPERREN IM TEILUNGSMODUS;
Exklusive Sperre: AUSWÄHLEN … FÜR AKTUALISIERUNG;

Sperrstufe

MySQL ist nach der Ebene oder Dichte der Sperren unterteilt und verfügt über drei Sperrebenen: Seitenebene, Tabellenebene und Zeilenebene.

(1) Sperren auf Tabellenebene

Geringer Overhead, keine große Sperrgranularität, höchste Wahrscheinlichkeit von Sperrenkonflikten, niedrigste hohe Parallelität.

(2) Sperren auf Zeilenebene

sind teuer und langsam zu sperren. Die Sperrgranularität ist am geringsten am niedrigsten, und die Parallelität ist auch am höchsten.

(3) Seitensperre

Die Kosten und die Sperrzeit sind zwischen Tabellensperren und Zeilensperren begrenzt. Die Granularität der Sperren ist zwischen Tabellensperren und Zeilen begrenzt Sperren Zwischen Zeilensperren ist die Parallelität durchschnittlich.

Das obige ist der detaillierte Inhalt vonWas sind die MySQL-Datenbanksperren?. 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ß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)

PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden Aug 05, 2023 pm 06:21 PM

PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden. Einführung: Beim Aufbau des modernen Internets ist E-Mail ein wichtiges Kommunikationswerkzeug. Ob Benutzerregistrierung, Passwort-Zurücksetzung oder Bestellbestätigung im E-Commerce – das Versenden von E-Mails ist eine wesentliche Funktion. In diesem Artikel wird erläutert, wie Sie mit PHPMailer E-Mails senden und die E-Mail-Informationen in der Benutzerinformationstabelle in der MySQL-Datenbank speichern. 1. Installieren Sie die PHPMailer-Bibliothek PHPMailer

Go-Sprache und MySQL-Datenbank: Wie trennt man heiße und kalte Daten? Go-Sprache und MySQL-Datenbank: Wie trennt man heiße und kalte Daten? Jun 18, 2023 am 08:26 AM

Da die Datenmenge immer weiter zunimmt, wird die Datenbankleistung zu einem immer wichtigeren Thema. Die Verarbeitung heißer und kalter Daten ist eine effektive Lösung, die heiße und kalte Daten trennen und so die Systemleistung und -effizienz verbessern kann. In diesem Artikel wird erläutert, wie Sie mithilfe der Go-Sprache und der MySQL-Datenbank heiße und kalte Daten trennen. 1. Was ist die Verarbeitung heißer und kalter Daten? Die Verarbeitung heißer und kalter Daten ist eine Möglichkeit, heiße und kalte Daten zu klassifizieren. Unter Hot Data versteht man Daten mit hoher Zugriffshäufigkeit und hohen Leistungsanforderungen

Wie verwende ich die MySQL-Datenbank für die Zeitreihenanalyse? Wie verwende ich die MySQL-Datenbank für die Zeitreihenanalyse? Jul 12, 2023 am 08:39 AM

Wie verwende ich die MySQL-Datenbank für die Zeitreihenanalyse? Zeitreihendaten beziehen sich auf eine Sammlung von Daten, die in zeitlicher Reihenfolge angeordnet sind und zeitliche Kontinuität und Korrelation aufweisen. Die Zeitreihenanalyse ist eine wichtige Datenanalysemethode, mit der zukünftige Trends vorhergesagt, zyklische Veränderungen entdeckt, Ausreißer erkannt usw. werden können. In diesem Artikel stellen wir Ihnen zusammen mit Codebeispielen vor, wie Sie eine MySQL-Datenbank für die Zeitreihenanalyse verwenden. Erstellen Sie eine Datentabelle. Zuerst müssen wir eine Datentabelle erstellen, um Zeitreihendaten zu speichern. Angenommen, wir möchten die Zahl analysieren

So führen Sie eine inkrementelle Datensicherung der MySQL-Datenbank mit der Go-Sprache durch So führen Sie eine inkrementelle Datensicherung der MySQL-Datenbank mit der Go-Sprache durch Jun 17, 2023 pm 02:28 PM

Mit zunehmender Datenmenge wird die Sicherung der Datenbank immer wichtiger. Für die MySQL-Datenbank können wir die Go-Sprache verwenden, um eine automatisierte inkrementelle Sicherung zu erreichen. In diesem Artikel wird kurz vorgestellt, wie Sie mithilfe der Go-Sprache eine inkrementelle Sicherung von MySQL-Datenbankdaten durchführen. 1. Installieren Sie die Go-Sprachumgebung. Zuerst müssen wir die Go-Sprachumgebung lokal installieren. Sie können auf der offiziellen Website das entsprechende Installationspaket herunterladen und installieren. 2. Installieren Sie die entsprechende Bibliothek. Die Go-Sprache bietet viele Bibliotheken von Drittanbietern für den Zugriff auf MySQL-Datenbanken, darunter die am häufigsten verwendeten

Inwieweit kann ich MySQL-Datenbankkenntnisse entwickeln, um erfolgreich eingesetzt zu werden? Inwieweit kann ich MySQL-Datenbankkenntnisse entwickeln, um erfolgreich eingesetzt zu werden? Sep 12, 2023 pm 06:42 PM

Inwieweit kann ich MySQL-Datenbankkenntnisse entwickeln, um erfolgreich eingesetzt zu werden? Mit der rasanten Entwicklung des Informationszeitalters sind Datenbankverwaltungssysteme zu einem unverzichtbaren und wichtigen Bestandteil in allen Lebensbereichen geworden. Als weit verbreitetes relationales Datenbankverwaltungssystem verfügt MySQL über ein breites Spektrum an Anwendungsfeldern und Einsatzmöglichkeiten. Inwieweit müssen also MySQL-Datenbankkenntnisse entwickelt werden, um erfolgreich eingesetzt zu werden? Zunächst einmal ist die Beherrschung der Grundprinzipien und Grundkenntnisse von MySQL die grundlegendste Voraussetzung. MySQL ist eine relationale Open-Source-Datenbankverwaltung

Wie verwende ich die MySQL-Datenbank für die Bildverarbeitung? Wie verwende ich die MySQL-Datenbank für die Bildverarbeitung? Jul 14, 2023 pm 12:21 PM

Wie verwende ich die MySQL-Datenbank für die Bildverarbeitung? MySQL ist ein leistungsstarkes relationales Datenbankverwaltungssystem, das nicht nur zum Speichern und Verwalten von Daten, sondern auch zur Bildverarbeitung verwendet werden kann. In diesem Artikel wird die Verwendung einer MySQL-Datenbank für die Bildverarbeitung vorgestellt und einige Codebeispiele bereitgestellt. Bevor Sie beginnen, stellen Sie sicher, dass Sie eine MySQL-Datenbank installiert haben und mit grundlegenden SQL-Anweisungen vertraut sind. Erstellen Sie eine Datenbanktabelle. Erstellen Sie zunächst eine neue Datenbanktabelle zum Speichern der Bilddaten. Der Aufbau der Tabelle kann wie folgt sein

Wie stelle ich mithilfe der Go-Sprache eine zuverlässige MySQL-Datenbankverbindung her? Wie stelle ich mithilfe der Go-Sprache eine zuverlässige MySQL-Datenbankverbindung her? Jun 17, 2023 pm 07:18 PM

Aufgrund der großen Datenmengen, die gespeichert und verarbeitet werden müssen, ist MySQL zu einer der am häufigsten verwendeten relationalen Datenbanken in der Anwendungsentwicklung geworden. Die Go-Sprache erfreut sich bei Entwicklern aufgrund ihrer effizienten Parallelitätsverarbeitung und prägnanten Syntax immer größerer Beliebtheit. Dieser Artikel führt die Leser dazu, eine zuverlässige MySQL-Datenbankverbindung über die Go-Sprache zu implementieren, sodass Entwickler Daten effizienter abfragen und speichern können. 1. Mehrere Möglichkeiten für die Go-Sprache, eine Verbindung zur MySQL-Datenbank herzustellen. Normalerweise gibt es drei Möglichkeiten, eine Verbindung zur MySQL-Datenbank in der Go-Sprache herzustellen: 1. Bibliothek eines Drittanbieters

Wie verwende ich die Datenbanksperre in Golang? Wie verwende ich die Datenbanksperre in Golang? Jun 02, 2024 pm 01:41 PM

In Golang können Datenbanksperren mithilfe von sync.Mutex oder Tx im Datenbank-/SQL-Paket implementiert werden. sync.Mutex eignet sich für nicht blockierende Vorgänge, während Tx die Ausführung einer Reihe von Vorgängen innerhalb einer Transaktion ermöglicht und sicherstellt, dass die Daten vor dem Festschreiben der Transaktion nicht geändert werden.

See all articles