So finden Sie heraus, wer eine Tabelle in MySQL sperrt

So finden Sie heraus, wer eine Tabelle in MySQL sperrt
Ein MySQL -Schloss bezieht sich auf eine mit einer Tabelle verbundene Sperrflag. Die Hauptverwendung von MySQL -Schlössern erfolgt in Benutzersitzungen, um zu verhindern, dass andere Benutzersitzungen während einer aktiven Sitzung auf die Tabelle zugreifen. Eine bestimmte MySQL -Sitzung kann nur auf seine Schlösser zugreifen und nicht mit anderen Kunden verbunden sind.

Sobald eine Tabelle in einer bestimmten Sitzung gesperrt ist, können andere Sitzungen nur dann gelesen oder in die Tabelle schreiben, es sei denn, die Sperre aus der Sitzung wird veröffentlicht. Daher befinden sich alle anderen Sitzungen im Wartenmodus, bis das Schloss veröffentlicht wird.

In dieser kurzen Anleitung werden Ihnen angezeigt.

Wie man einen Tisch sperrt

Um einen Schließstatus in einer bestimmten Tabelle zu erwerben, können Sie die Anweisung Sperle Tabellen verwenden. Die allgemeine Syntax für das Verriegelungstabellen lautet:

MySQL> Sperrtabellen TB_NAME [lock_type]

Im Sperrtyp können Sie Lese- oder Leseschloss angeben. Das folgende Beispiel legt die Schreibschloss in der Schauspielertabelle fest.

Schlosstische Sakila.Schauspieler las;

Sobald Sie den Schlosser haben, aktualisieren alle anderen Sitzungen keine in der Tabelle gespeicherten Daten.

Beispielsweise schlägt die folgende Anweisung fehl, es sei denn, die Tabelle ist freigeschaltet.

In Sakila einfügen.Schauspieler (First_Name, last_name, last_update) Werte ('Hallo', 'World', current_date ());

MySQL gibt Ihnen einen Lesefehler als:

Fehler 1099 (HY000): Tabelle 'Schauspieler' wurde mit einer Lesesperrung gesperrt und kann nicht aktualisiert werden

So entsperren Sie einen Tisch

Um eine Tabelle zu entsperren, verwenden Sie die Abfrage der Entsperrtabellen als:

MySQL> Entsperren Sie Tabellen;

Zeigen Sie gesperrte Tische

Standardmäßig gibt es keine endgültige Möglichkeit, wie Sie nach einer gesperrten Tabelle abfragen können: (SHOW Sperrtabellen anzeigen;).

Wir können jedoch einen ProcessList -Befehl verwenden, um die gesperrten Tabellen und Benutzer anzuzeigen.

Verwenden Sie den Befehl:

ProcessList anzeigen;

Dadurch werden die Informationen sowie die Fragen, die auf das Sperren warten.

Das obige Beispiel zeigt den Stammbenutzer an, der die Tabelle in der Schauspielertabelle sperrt.

Abschluss

In diesem kurzen Tutorial wurde gezeigt, wie Sie Tabellen sperren und entsperren und die Benutzer, die eine Tabelle in einer Datenbank gesperrt haben.