Besprechen Sie ausführlich die Tabelle mit der MySQL-Abfragesperre
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.
- 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.
- 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.
- 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!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Coalesce () returnStheFirstnon-nullValuefromalistofexpressions, ermöglicht das Unternehmen, mergingColumnValues, unterstützte Kalkulationen mit der Unterstützung von Kalkulationen mit und berichteten und -providingbacksinjoinSandaggmulierungen, die Vorbehandlungsprüfungsprüfungen und -sprüchesprüche, Sucurierungsprüfungen, Sucurierungsprüfungen

Um einer vorhandenen Tabelle einen Primärschlüssel hinzuzufügen, verwenden Sie die altertable Anweisung mit der AddPrimaryKey -Klausel. 1. Stellen Sie sicher, dass die Zielspalte keinen Nullwert, keine Duplikation hat und als Notnull definiert ist. 2. Die einspaltige Primärschlüsselsyntax ist ein altertierbarer Tabellenname AddPrimaryKey (Spaltenname); 3. Die Multi-Säulen-Kombination der Primärschlüsselsyntax ist der Namen AddPrimaryKey (Spalte 1, Spalte 2); 4. Wenn die Spalte NULL erlaubt, müssen Sie zuerst Änderungen ausführen, um Notnull zu setzen. 5. Jede Tabelle kann nur einen Primärschlüssel haben und der alte Primärschlüssel muss vor dem Hinzufügen gelöscht werden. 6. Wenn Sie es selbst erhöhen müssen, können Sie Modify verwenden, um auto_increment festzulegen. Stellen Sie vor dem Betrieb Daten sicher

Um alle Datenbanken in MySQL anzuzeigen, müssen Sie den Befehl showDatabases verwenden. 1. Nachdem Sie sich auf dem MySQL -Server angemeldet haben, können Sie die ShowDatabasen ausführen. Befehl zur Auflistung aller Datenbanken, auf die der aktuelle Benutzer zugegriffen hat. 2. Systemdatenbanken wie Information_Schema, MySQL, Performance_schema und System existieren standardmäßig, Benutzer mit unzureichenden Berechtigungen können sie möglicherweise nicht sehen; 3.. Sie können die Datenbank auch durch selectSchema_nameFrominFormation_schema.schemata abfragen und filtern. Beispielsweise ohne die Systemdatenbank, um nur die von den Benutzern erstellte Datenbank anzuzeigen; Stellen Sie sicher

Überprüfen Sie, ob der MySQL -Dienst ausgeführt wird. Verwenden Sie SudosystemctlstatUSmysql, um zu bestätigen und zu starten. 2. Stellen Sie sicher, dass die Bindungsadresse auf 0,0,0,0 eingestellt ist, um Remote-Verbindungen zu ermöglichen und den Dienst neu zu starten. 3. Überprüfen Sie, ob der 3306 -Port geöffnet ist, und konfigurieren Sie die Firewall -Regeln, um den Port zuzulassen. 4. Für den Fehler "AccessDenied" müssen Sie den Benutzernamen, den Kennwort und den Hostnamen überprüfen und sich dann bei MySQL anmelden und die Tabelle mySQL.User abfragen, um die Berechtigungen zu bestätigen. Erstellen oder aktualisieren Sie den Benutzer bei Bedarf und autorisieren Sie ihn, z. B. "Your_User"@'%". 5. Wenn die Authentifizierung aufgrund von caching_sha2_password verloren geht

Die Verwendung von MySQldump ist der häufigste und effektivste Weg, um MySQL -Datenbanken zu sichern. Es kann SQL -Skripte generieren, die Tabellenstruktur und Daten enthalten. 1. Die grundlegende Syntax ist: Mysqldump-U [Benutzername] -P [Datenbankname]> backup_file.sql. Geben Sie nach der Ausführung das Passwort ein, um eine Sicherungsdatei zu generieren. 2. Sicherung mehrere Datenbanken mit-Databasen Option: Mysqldump-uroot-p-databaseSdb1db2> multiple_dbs_backup.sql. 3.. BACKE ALLE Datenbanken mit-alle Daten: Mysqldump-uroot-P

Sie können das Trennzeichen mit dem Schlüsselwort des Separators in der Funktion Group_Concat () anpassen. 1. Verwenden Sie einen Trennzeichen, um einen benutzerdefinierten Trennzeichen wie Trennzeichen anzugeben. 'Der Trennzeichen kann in ein Semikolon und plus Raum geändert werden. 2. Häufige Beispiele sind die Verwendung des Rohrzeichens '|', Space '', Line Break-Zeichen '\ n' oder benutzerdefinierte Zeichenfolge '->' als Trennzeichen; 3.. Beachten Sie, dass das Trennzeichen ein Zeichenfolge oder ein Ausdruck von String sein muss und die Ergebnislänge durch die Variable gruppe_concat_max_len begrenzt wird, die durch setSessionGroup_concat_max_len = 10000 eingestellt werden kann; 4. Separator ist optional

UnionRemovesduplicate whileunionAllekeepsallrowsincludingDuplikate; 1.unionperformSETUPLICINGBYSORTINGANDANDAWROWS, RETATIONALE DER ANGEBOTEN, WO DER MEITSSITSSITSSITSSITSSITSSITSSITSSITSSSITSSSITSSSITSENSLOWERONLARGEDATASETSETENTEN;

Die Tabelle kann manuell mit Locktables gesperrt werden. Das Leseschloss ermöglicht es mehr, mehrere Sitzungen zu lesen, aber nicht geschrieben werden kann. Die Schreibschloss enthält exklusive Lesen- und Schreibberechtigungen für die aktuelle Sitzung und andere Sitzungen können nicht lesen und schreiben. 2. Das Schloss ist nur für die aktuelle Verbindung. Die Ausführung von StartTransaction und anderen Befehlen wird das Schloss implizit freigeben. Nach dem Sperren kann es nur auf den verschlossenen Tisch zugreifen. 3. Verwenden Sie es nur in bestimmten Szenarien wie MyISAM -Tabellenwartung und Datensicherung. InnoDB sollte der Verwendung von Transaktions- und Zeilenebenen wie Select ... Forupdate Priorität geben, um Leistungsprobleme zu vermeiden. V.
