Einige allgemeine Anweisungen zum Anzeigen von Transaktionen und Sperren in der Datenbank Wartestatus der Transaktion prüfen:WÄHLEN r.trx_id warte_trx_id, r.trx_mysql_thread_id wartender_Thread, r.trx_query warte_abfrage, b.trx_id blockierende_trx_id, b.trx_mysql_thread_id blockierender Thread, b.trx_query blockierende_Abfrage AUS information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id; Zeigen Sie den genaueren Wartestatus für Transaktionen an:WÄHLEN b.trx_state, Anwesen, e.Zeit, d.state ALS block_state, d.time AS block_time, eine anfordernde_trx_id, a.angeforderte_Sperr-ID, b.trx_query, b.trx_mysql_thread_id, eine.blocking_trx_id, eine.Blockierungssperre-ID, c.trx_query AS block_trx_query, c.trx_mysql_thread_id AS block_trx_mysql_tread_id AUS information_schema.INNODB_LOCK_WAITS a LEFT JOIN information_schema.INNODB_TRX b ON a.requesting_trx_id = b.trx_id LEFT JOIN information_schema.INNODB_TRX c ON a.blocking_trx_id = c.trx_id LINKS JOIN information_schema.PROZESSLIST d ON c.trx_mysql_thread_id = d.id LINKS JOIN information_schema.PROZESSLIST e ON b.trx_mysql_thread_id = e.id BESTELLEN BIS eine.anfordernde_trx_id; Nicht abgeschlossene Transaktionen anzeigen:–MySQL 5.6 WÄHLEN eine.trx_id, ein.trx_state, a.trx_started, eine.trx_query, Gebot, b.BENUTZER, b.DB, b.BEFEHL, b.ZEIT, b.STAAT, b.INFO, c.PROCESSLIST_USER, c.PROCESSLIST_HOST, c.PROCESSLIST_DB, d.SQL_TEXT AUS information_schema.INNODB_TRX a LINKS JOIN information_schema.PROCESSLIST b ON a.trx_mysql_thread_id = b.id UND b.COMMAND = 'Schlaf' LINKS JOIN PERFORMANCE_SCHEMA.threads c ON b.id = c.PROCESSLIST_ID LINKS JOIN PERFORMANCE_SCHEMA.events_statements_current d ON d.THREAD_ID = c.THREAD_ID; –MySQL 5.5 WÄHLEN eine.trx_id, ein.trx_state, a.trx_started, eine.trx_query, Gebot, b. NUTZER, b. Gastgeber, b.DB, b.BEFEHL, b.ZEIT, b.STAAT, b.INFO AUS information_schema.INNODB_TRX a LINKS JOIN information_schema.PROCESSLIST b ON a.trx_mysql_thread_id = b.id WO b.COMMAND = 'Schlafen'; Zeigen Sie Transaktionen an, die über einen bestimmten Zeitraum nicht abgeschlossen wurden:WÄHLEN trx_id, trx_started, trx_mysql_thread_id AUS INFORMATION_SCHEMA.INNODB_TRX WO trx_started < date_sub(jetzt(), INTERVALL 1 MINUTE) UND trx_operation_state IST NULL UND trx_query IST NULL; Ergänzung: MySQL-Befehl zur Anzeige des Sperrstatus 1 Prozessliste anzeigen;SHOW PROCESSLIST zeigt an, welche Threads ausgeführt werden. Sie können diese Informationen auch mit der mysqladmin-Prozessliste-Anweisung abrufen. Wenn Sie über das SUPER-Privileg verfügen, können Sie alle Threads sehen. Andernfalls können Sie nur Ihre eigenen Threads sehen (d. h. Threads, die mit dem von Ihnen verwendeten MySQL-Konto verknüpft sind). Wenn ein Thread eine Tabelle aktualisiert oder einfügt, lautet der Status des Prozesses „Aktualisieren oder Senden von Daten“. Diese Anweisung ist nützlich, wenn Sie die Fehlermeldung „zu viele Verbindungen“ erhalten und verstehen möchten, was passiert. MySQL reserviert eine zusätzliche Verbindung für die Verwendung durch Konten mit dem SUPER-Privileg, um sicherzustellen, dass Administratoren immer eine Verbindung zum System herstellen und es untersuchen können (vorausgesetzt, Sie erteilen dieses Privileg nicht allen Benutzern).
Die meisten Zustände entsprechen sehr schnellen Vorgängen. Wenn ein Thread mehrere Sekunden lang im gleichen Zustand bleibt, liegt möglicherweise ein Problem vor und muss überprüft werden. Es gibt noch weitere Status, die oben nicht aufgeführt sind, die meisten davon sind jedoch nur nützlich, um festzustellen, ob Fehler beim Server vorliegen. 2 vollständige Prozessliste anzeigen;Prozessliste anzeigen; es werden nur die ersten 100 Elemente aufgelistet. Wenn Sie alle Elemente auflisten möchten, verwenden Sie bitte „Vollständige Prozessliste anzeigen“. 3 offene Tische anzeigen;Mit diesem Befehl kann überprüft werden, welche Tabellen aktuell geöffnet sind. Die Spalte „In_use“ gibt an, wie viele Threads eine Tabelle verwenden, und „Name_locked“ gibt an, ob der Tabellenname gesperrt ist, was normalerweise der Fall ist, wenn der Befehl „Drop“ oder „Rename“ auf diese Tabelle angewendet wird. Daher kann dieser Befehl unsere allgemeinen Fragen nicht beantworten: ob eine bestimmte Tabelle derzeit gesperrt ist, wem die Sperre für die Tabelle gehört usw. offene Tabellen aus der Datenbank anzeigen; 4 Status wie „%lock%“ anzeigenÜberprüfen Sie den Serverstatus. 5 zeige Engine-InnoDB-Status\G;Der Befehl vor MySQL 5.1 lautete: show innodbstatus\G;. In MySQL 5.5 können Sie den obigen Befehl verwenden, um die Laufzeitinformationen der InnoDB-Engine anzuzeigen. 6 zeigen Variablen wie „%timeout%“ an;Serverkonfigurationsparameter anzeigen. Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: HTML-Tabellen-Markup-Tutorial (40): Dunkles Rahmenfarbattribut der Kopfzeile BORDERCOLORDARK
>>: Beispiel für die Implementierung des Skelettbildschirms des WeChat-Applets
<br />Worte sind das unvermeidliche Produkt ...
Inhaltsverzeichnis Nachdem Sie einen Container lo...
Weitere Informationen zu Bedienelementen finden S...
Fragen zu Select-Elementen in HTML wurden an viel...
Das Erstellen eines React-Projekts kann sehr einf...
Inhaltsverzeichnis Vorwort 1. Installieren Sie sc...
Frage Nginx nimmt $remote_addr als echte IP-Adres...
In diesem Artikelbeispiel wird der spezifische Co...
Überblick Heute werden wir hauptsächlich erläuter...
Grundlegende Umgebungskonfiguration Bitte kaufen ...
In einer Tabelle können Sie die Farbe des oberen ...
1. Geben Sie die folgende Adresse in den Browser ...
Manchmal kommt es in einem Projekt aus irreversib...
Inhaltsverzeichnis Veränderungen im Lebenszyklus ...
Installationsumgebung: CAT /etc/os-release Zeigt ...