Heim  >  Artikel  >  Datenbank  >  Besprechen Sie ausführlich die Tabelle mit der MySQL-Abfragesperre

Besprechen Sie ausführlich die Tabelle mit der MySQL-Abfragesperre

PHPz
PHPzOriginal
2023-04-17 09:19:48997Durchsuche

MySQL ist eine Open-Source-Software, die auf einem relationalen Datenbankverwaltungssystem basiert. Es wird häufig in Anwendungen verwendet und bietet Entwicklern eine zuverlässige Möglichkeit, Daten zu speichern. Da MySQL bei der Verarbeitung großer Datenmengen jedoch anfällig für Probleme bei der Aufrechterhaltung gesperrter Tabellen ist, müssen Entwickler wissen, wie gesperrte Tabellen abgefragt werden.

Bei der Entwicklung mit MySQL müssen Sie häufig gesperrte Tabellen abfragen. MySQL bietet verschiedene Möglichkeiten zum Abfragen der aktuell gesperrten Tabelle, einschließlich der Verwendung von Befehlszeilentools, der Abfrage von Systemansichten und der Abfrage von Informationsschematabellen. Jede Abfragemethode wird im Folgenden ausführlich erläutert, mit einigen Beispielen.

  1. Verwenden Sie Befehlszeilentools, um gesperrte Tabellen abzufragen.
    Verwenden Sie den Befehl SHOW PROCESSLIST in der Befehlszeile, um die aktuell ausgeführten Prozesse und Threads abzufragen. Da jeder Tabelle in MySQL eine Thread-ID zugeordnet ist, können Sie mit diesem Befehl ermitteln, welche Tabelle derzeit gesperrt ist. Der folgende Befehl fragt beispielsweise alle laufenden Abfragen ab und findet heraus, welche die angegebene Tabelle sperrt:
SHOW PROCESSLIST;

Dadurch wird eine Liste aller derzeit laufenden MySQL-Threads angezeigt. In der Liste können Sie nützliche Informationen wie ID, Benutzer, Host, Datenbank, Befehl, Uhrzeit und Status anzeigen. Wenn beispielsweise ein Thread die Tabelle „Tabellenname“ sperrt, finden Sie das Feld „LOCK“ in der Spalte „Befehl“. Darüber hinaus können Sie in der Spalte „Info“ sehen, welche SQL-Anweisung von der Abfrage ausgeführt wird.

  1. Systemansichten abfragen und gesperrte Tabellen ermitteln
    MySQL bietet außerdem eine große Anzahl von Systemansichten zur Überprüfung aktuell laufender Threads, Sperrinformationen und Mutex-Sperren, Sitzungen und deren Eigenschaften, Datenbank Status usw. Fragen Sie die folgende Ansicht ab, um die aktuell gesperrte Tabelle zu ermitteln:
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS WHERE LOCK_TABLE LIKE '%table_name%';

In dieser Abfrageanweisung können Sie „table_name“ durch den Namen der Tabelle ersetzen, die Sie abfragen möchten. Diese Anweisung gibt alle Zeilen und Tabellen zurück, die derzeit von der InnoDB-Engine gesperrt sind. Darüber hinaus können Sie die Ansicht INFORMATION_SCHEMA.INNODB_LOCK_WAITS abfragen, um Threads zu finden, die auf Sperrressourcen warten.

  1. Fragen Sie die Info-Schema-Tabelle ab, um festzustellen, welche Tabelle gesperrt ist.
    Die Info-Schema-Tabelle in MySQL ermöglicht es dem Benutzer, verschiedene vom Datenbankserver verwendete Ressourcen zu überprüfen. Dazu gehören offene Tabellen, aktueller Thread, gesperrte Zeilen und Tabellen, Zeit und mehr. Sie können die aktuell gesperrte Tabelle finden, indem Sie die folgende Tabelle abfragen:
SELECT * FROM information_schema.TABLES WHERE ENGINE = 'InnoDB' AND TABLE_NAME = 'table_name';

In der obigen Abfrage können Sie „table_name“ durch den Namen der Tabelle ersetzen, die Sie abfragen möchten. Diese Abfrage gibt Details zum angegebenen Tabellenserver und zur angegebenen Speicher-Engine zurück. Wenn die Tabelle gesperrt ist, kann der Sperrtyp im Feld LOCK_TYPE angezeigt werden.

Zusammenfassung:
MySQL Es gibt verschiedene Möglichkeiten, gesperrte Tabellen abzufragen. Verwenden Sie das Befehlszeilentool, um laufende Threads abzufragen und Threads zu finden, die eine bestimmte Tabelle sperren. Verwenden Sie Systemansichten, um laufende Vorgänge, wartende Vorgänge und Vorgänge zum Erlangen von Sperren zu ermitteln, um die Spalte „QUERY“ zu finden ob es sich bei der ausgeführten Abfrage um eine Sperre oder eine andere Abfrage handelt. Bitte beachten Sie jedoch, dass Sie vor der Durchführung von Änderungen die offizielle MySQL-Dokumentation sorgfältig lesen, um alle erforderlichen Kenntnisse und Empfehlungen zu verstehen und unnötige Verluste zu vermeiden.

Das obige ist der detaillierte Inhalt vonBesprechen Sie ausführlich die Tabelle mit der MySQL-Abfragesperre. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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