1. Abfragevorgang Prozessliste anzeigen 2. Fragen Sie den entsprechenden Prozess ab und beenden Sie die ID Überprüfen (prüfen, ob nach dem Beenden immer noch eine Sperre vorhanden ist) 2. Prüfen Sie, ob die Tabelle gesperrt ist zeige OFFENE TABELLEN, bei denen In_use > 0 ist; Beispiel: Erstellen Sie eine neue Sitzung und führen Sie das folgende Beispiel für eine Displaysperre aus SPERRT TABELLEN account_data.account LESEN; Wählen Sie Sleep (160); TABELLEN ENTSPERREN account_data.account; Öffnen Sie eine weitere Sitzung, um den Status der Sperrtabelle zu überprüfen: mysql> zeige OFFENE TABELLEN, bei denen In_use > 0 ist; +--------------+---------+--------+-------------+ | Datenbank | Tabelle | In_Verwendung | Name_gesperrt | +--------------+---------+--------+-------------+ | Kontodaten | Konto | 1 | 0 | +--------------+---------+--------+-------------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle * aus information_schema.innodb_locks\G; Leerer Satz, 1 Warnung (0,00 Sek.) FEHLER: Keine Abfrage angegeben mysql> Prozessliste anzeigen\G; *************************** 1. Reihe *************************** ID: 5 Benutzer: root Gastgeber: 192.168.0.206:64294 db: NULL Befehl: Schlafen Zeit: 4051 Zustand: Info: NULL *************************** 2. Reihe *************************** ID: 8 Benutzer: root Gastgeber: 192.168.0.206:64297 db: NULL Befehl: Schlafen Zeit: 4042 Zustand: Info: NULL *************************** 3. Reihe *************************** ID: 10 Benutzer: root Host: localhost db: NULL Befehl: Abfrage Zeit: 0 Status: beginnend Info: Prozessliste anzeigen *************************** 4. Reihe *************************** ID: 19 Benutzer: root Gastgeber: 192.168.0.206:54603 db:Kontodaten Befehl: Schlafen Zeit: 245 Zustand: Info: NULL *************************** 5. Reihe *************************** ID: 20 Benutzer: root Gastgeber: 192.168.0.206:54604 db:information_schema Befehl: Abfrage Zeit: 20 Status: Benutzerschlaf Info: wähle sleep(160) 5 Zeilen im Satz (0,00 Sek.) FEHLER: Keine Abfrage angegeben MySQL> 3. In 5.5 werden der Bibliothek information_schema (InnoDB-Engine) drei Sperrtabellen hinzugefügt: innodb_trx ## Alle aktuell laufenden Transaktionen innodb_locks ## Aktuelle Sperren innodb_lock_waits ## Korrespondenz zwischen Sperrwartezeiten Schauen wir uns die Strukturen dieser drei Tabellen an: [email protected]: Informationsschema 13:28:38> Beschreibung innodb_locks; +————-+———————+——+—–+———+——-+ | Feld | Typ | Null | Schlüssel | Standard | Extra | +————-+———————+——+—–+———+——-+ | lock_id | varchar(81) | NEIN | | | |#Sperr-ID | lock_trx_id | varchar(18) | NEIN | | | |#Transaktions-ID, der das Schloss gehört | lock_mode | varchar(32) | NEIN | | | |#Sperrmodus | lock_type | varchar(32) | NEIN | | | |#Sperrtyp | lock_table | varchar(1024) | NEIN | | | |#Gesperrte Tabelle | lock_index | varchar(1024) | JA | | NULL | |#Gesperrter Index | lock_space | bigint(21) unsigned | JA | | NULL | |#Nummer des gesperrten Tablespace | lock_page | bigint(21) unsigned | JA | | NULL | |#Nummer der gesperrten Seite | lock_rec | bigint(21) unsigned | JA | | NULL | |#Nummer des gesperrten Datensatzes | lock_data | varchar(8192) | JA | | NULL | |#Gesperrte Daten+————-+———————+——+—–+———+——-+ 10 Zeilen im Satz (0,00 Sek.) [email protected]:information_schema 13:28:56>desc innodb_lock_waits; +——————-+————-+——+—–+———+——-+ | Feld | Typ | Null | Schlüssel | Standard | Extra | +——————-+————-+——+—–+———+——-+ | requesting_trx_id | varchar(18) | NEIN | | | |#Transaktions-ID, die die Sperre anfordert | requested_lock_id | varchar(81) | NEIN | | | |#Sperr-ID des angeforderten Schlosses | blocking_trx_id | varchar(18) | NEIN | | | |#Transaktions-ID, die derzeit die Sperre besitzt | blocking_lock_id | varchar(81) | NEIN | | | |#Die Sperr-ID der aktuellen Sperre +——————-+————-+——+—–+———+——-+ 4 Zeilen im Satz (0,00 Sek.) [email protected] : information_schema 13:29:05> desc innodb_trx ; +—————————-+———————+——+—–+———————+——-+ | Feld | Typ | Null | Schlüssel | Standard | Extra | +—————————-+———————+——+—–+———————+——-+ | trx_id | varchar(18) | NEIN | | | |#Transaktions-ID | trx_state | varchar(13) | NEIN | | | |#Transaktionsstatus: | trx_started | datetime | NEIN | | 0000-00-00 00:00:00 | |#Startzeit der Transaktion; | trx_requested_lock_id | varchar(81) | JA | | NULL | |#innodb_locks.lock_id | trx_wait_started | datetime | JA | | NULL | |#Wartezeit für Transaktionsstart | trx_weight | bigint(21) unsigned | NEIN | | 0 | |# | trx_mysql_thread_id | bigint(21) unsigned | NEIN | | 0 | |#Transaktions-Thread-ID | trx_query | varchar(1024) | JA | | NULL | |#Spezifische SQL-Anweisung| trx_operation_state | varchar(64) | JA | | NULL | |#Aktueller Betriebsstatus der Transaktion| trx_tables_in_use | bigint(21) unsigned | NEIN | | 0 | |#Wie viele Tabellen werden in der Transaktion verwendet?| trx_tables_locked | bigint(21) unsigned | NEIN | | 0 | |#Wie viele Sperren hat die Transaktion?| trx_lock_structs | bigint(21) unsigned | NEIN | | 0 | |# | trx_lock_memory_bytes | bigint(21) unsigned | NEIN | | 0 | |#Für Transaktion gesperrte Speichergröße (B) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers ::::::::::: | trx_adaptive_hash_timeout | bigint(21) unsigniert | NEIN | | 0 | |# +—————————-+———————+——+—–+———————+——-+ 22 Zeilen im Satz (0,01 Sek.) Gesperrte Transaktionen anzeigen Wählen Sie * aus Information_Schema.InnoDB_Locks; Anzeigen von Transaktionen, die auf Sperren warten Wählen Sie * aus Information_Schema.InnoDB_Lock_Waits; Informationen zum Thread zum Blockieren von Sperren anzeigen 3.1 Verwenden Sie show processlist zum Anzeigen 3.2 Verwenden Sie den InnoDB-Status der Show Engine zur direkten Anzeige ------------ TRANSAKTIONEN ------------ Trx-ID-Zähler 4131 Bereinigung für TRXs Nr. 0 < 4119 durchgeführt Rückgängig machen Nr. 0 < 0 Status: läuft, aber im Leerlauf Länge der Verlaufsliste: 126 LISTE DER TRANSAKTIONEN FÜR JEDE SITZUNG: ---TRANSACTION 0, nicht gestartet MySQL-Thread-ID 2, OS-Thread-Handle 0x7f953ffff700, Abfrage-ID 115, Localhost-Root-Init Engine-InnoDB-Status anzeigen ---TRANSACTION 4130, AKTIV 41 Sek. Start des Indexlesens MySQL-Tabellen in Verwendung 1, gesperrt 1 LOCK WAIT 2 Sperrstruktur(en), Heap-Größe 360, 1 Zeilensperre(n) MySQL-Thread-ID 4, OS-Thread-Handle 0x7f953ff9d700, Abfrage-ID 112, Localhost-Root wird aktualisiert Löschen von emp, wobei empno=7788 ------- TRX HAT 41 SEKUNDEN AUF DIE GEWÄHRUNG DIESER SPERRE GEWARTET: ## 41 Sekunden gewartet Datensatzsperren, Speicherplatz-ID 16, Seitennummer 3, n Bits 88, Index „PRIMARY“ der Tabelle „test“. „emp“ TRX-ID 4130, Sperrmodus X sperrt Datensatz, aber nicht Lückenwartezeit Datensatzsperre, Heap Nr. 9 PHYSIKALISCHER DATENSATZ: n_Felder 10; kompaktes Format; Infobits 0 ## Thread 4 wartet darauf, dem Primärschlüssel in test.emp, Seitennummer=3, eine X-Sperre hinzuzufügen. 0: Länge 4; Hex 80001e6c; asc l;; 1: Länge 6; Hex 000000001018; aufsteigend ;; 2: Länge 7; Hex 91000001420084; aufsteigend B ;; 3: Länge 5; Hex 53434f5454; aufsteigend SCOTT;; 4: Länge 7; Hex 414e414c595354; aufsteigend ANALYST;; 5: Länge 4; Hex 80001d8e; aufsteigend ;; 6: Länge 4; Hex 208794f0; aufsteigend ;; 7: Länge 4; Hex 80000bb8; aufsteigend ;; 8: SQL NULL; 9: Länge 4; Hex 80000014; aufsteigend ;; ------------------ ---TRANSACTION 4129, AKTIV 45 Sek. Start des Indexlesens MySQL-Tabellen in Verwendung 1, gesperrt 1 LOCK WAIT 2 Sperrstruktur(en), Heap-Größe 360, 1 Zeilensperre(n) MySQL-Thread-ID 7, OS-Thread-Handle 0x7f953ff6c700, Abfrage-ID 111, Localhost-Root wird aktualisiert Aktualisiere emp setze sal=3500, wobei empno=7788 ------- TRX HAT 45 SEKUNDEN AUF DIE GEWÄHRUNG DIESER SPERRE GEWARTET: ## 45 Sekunden gewartet Datensatzsperren, Speicherplatz-ID 16, Seitennummer 3, n Bits 88, Index „PRIMARY“ der Tabelle „test“. „emp“ TRX-ID 4129, Sperrmodus X sperrt Datensatz, aber nicht Lückenwartezeit Datensatzsperre, Heap Nr. 9 PHYSIKALISCHER DATENSATZ: n_Felder 10; kompaktes Format; Infobits 0 ## Thread 7 wartet darauf, dem Primärschlüssel in test.emp, Seitennummer=3, eine X-Sperre hinzuzufügen. 0: Länge 4; Hex 80001e6c; asc l;; 1: Länge 6; Hex 000000001018; aufsteigend ;; 2: Länge 7; Hex 91000001420084; aufsteigend B ;; 3: Länge 5; Hex 53434f5454; aufsteigend SCOTT;; 4: Länge 7; Hex 414e414c595354; aufsteigend ANALYST;; 5: Länge 4; Hex 80001d8e; aufsteigend ;; 6: Länge 4; Hex 208794f0; aufsteigend ;; 7: Länge 4; Hex 80000bb8; aufsteigend ;; 8: SQL NULL; 9: Länge 4; Hex 80000014; aufsteigend ;; ------------------ ---TRANSAKTION 4128, AKTIV 51 Sek. 2 Sperrstrukturen, Heap-Größe 360, 1 Zeilensperre MySQL-Thread-ID 3, OS-Thread-Handle 0x7f953ffce700, Abfrage-ID 110, Localhost-Root wird bereinigt Wir wissen, dass die Hauptursache immer noch Thread=3 ist, aber dieses Ergebnis kann nicht vom InnoDB-Status aus analysiert werden. Aus dem Obigen können wir erkennen, dass sowohl Thread 4 als auch Thread 7 darauf warten, dem Primärschlüssel in test.emp, Seite num=3, eine X-Sperre hinzuzufügen. Thread 7 wartet jedoch 45 Sekunden, während Thread 4 41 Sekunden wartet. Die Sperre wird später als bei Thread 7 angewendet, sodass festgestellt werden kann, dass Thread 7 Thread 4 blockiert hat. Die Grundursache, warum Thread 7 wartet, kann hier nicht analysiert werden. 3.3 Verwenden Sie mysqladmin debug zum Anzeigen # mysqladmin -S /tmp/mysql3306.sock debug Im Fehlerprotokoll wird dann Folgendes angezeigt: Thread database.table_name Gesperrt/Wartend Lock_type 3 test.t3 Gesperrt - lesen Lesesperre mit niedriger Priorität 7 test.emp Gesperrt - schreiben Schreibsperre mit hoher Priorität Mit dieser Methode können wir feststellen, dass Thread-ID=3 und 7 Blockierer sind, aber es ist immer noch nicht genau genug, um zu bestimmen, dass Thread 7 auch durch Thread-ID=3 blockiert wird. 3.4 Verwenden Sie innodb_lock_monitor, um den blockierenden Sperrthread abzurufen MySQL [test]> CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB; ## Erstellen Sie diese Tabelle in einer beliebigen Datenbank und der Sperrmonitor wird aktiviert Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,07 Sek.) MySQL [test]> Warnungen anzeigen\G *************************** 1. Reihe *************************** Stufe: Warnung Code: 131 Nachricht: Die Verwendung des Tabellennamens innodb_lock_monitor zum Aktivieren der Diagnoseausgabe ist veraltet und wird in zukünftigen Versionen möglicherweise entfernt. Verwenden Sie INFORMATION_SCHEMA- oder PERFORMANCE_SCHEMA-Tabellen oder SET GLOBAL innodb_status_output=ON. 1 Zeile im Satz (0,00 Sek.) Hinweis: Dies führt zu einer Warnung in 5.6, hat jedoch keine Auswirkungen auf die Nutzung. Verwenden Sie dann „show engine innodb status“, um Folgendes anzuzeigen: ------------ TRANSAKTIONEN ------------ Trx-ID-Zähler 4667 Bereinigung für TRXs Nr. 0 < 4659 durchgeführt Rückgängig machen Nr. 0 < 0 Status: läuft, aber im Leerlauf Länge der Verlaufsliste 138 LISTE DER TRANSAKTIONEN FÜR JEDE SITZUNG: ---TRANSACTION 0, nicht gestartet MySQL-Thread-ID 9, OS-Thread-Handle 0x7f813c5f7700, Abfrage-ID 152, Localhost-Root-Init Engine-InnoDB-Status anzeigen ---TRANSACTION 4663, AKTIV 78 Sek. Start des Indexlesens MySQL-Tabellen in Verwendung 1, gesperrt 1 LOCK WAIT 2 Sperrstruktur(en), Heap-Größe 360, 1 Zeilensperre(n) MySQL-Thread-ID 4, OS-Thread-Handle 0x7f813c628700, Abfrage-ID 149, Localhost-Root-Aktualisierung Löschen von emp, wobei empno=7788 ------- TRX HAT 78 SEKUNDEN AUF DIE GEWÄHRUNG DIESER SPERRE GEWARTET: ## 78 Sekunden gewartet Datensatzsperren, Speicherplatz-ID 16, Seitennummer 3, n Bits 88, Index „PRIMARY“ der Tabelle „test“. „emp“ TRX-ID 4663, Sperrmodus X sperrt Datensatz, aber nicht Lückenwartezeit Datensatzsperre, Heap Nr. 9 PHYSIKALISCHER DATENSATZ: n_Felder 10; kompaktes Format; Infobits 0 ## Thread 4 wartet darauf, dem Primärschlüssel in test.emp, Seitennummer=3, eine X-Sperre hinzuzufügen. 0: Länge 4; Hex 80001e6c; asc l;; 1: Länge 6; Hex 000000001018; aufsteigend ;; 2: Länge 7; Hex 91000001420084; aufsteigend B ;; 3: Länge 5; Hex 53434f5454; aufsteigend SCOTT;; 4: Länge 7; Hex 414e414c595354; aufsteigend ANALYST;; 5: Länge 4; Hex 80001d8e; aufsteigend ;; 6: Länge 4; Hex 208794f0; aufsteigend ;; 7: Länge 4; Hex 80000bb8; aufsteigend ;; 8: SQL NULL; 9: Länge 4; Hex 80000014; aufsteigend ;; ------------------ TABELLENSPERRE Tabelle „test“. „emp“ TRX-ID 4663 Sperrmodus IX ## Bevor Sie der Primärschlüsselzeile eine X-Sperre hinzufügen, fügen Sie der Tabelle zuerst eine Absichtssperre IX hinzu. Datensatzsperren, Speicherplatz-ID 16, Seitennummer 3, n Bits 88, Index „PRIMARY“ der Tabelle „test“. „emp“ TRX-ID 4663, Sperrmodus X sperrt Datensatz, aber nicht Lückenwartezeit Datensatzsperre, Heap Nr. 9 PHYSIKALISCHER DATENSATZ: n_Felder 10; kompaktes Format; Infobits 0 0: Länge 4; Hex 80001e6c; asc l;; 1: Länge 6; Hex 000000001018; aufsteigend ;; 2: Länge 7; Hex 91000001420084; aufsteigend B ;; 3: Länge 5; Hex 53434f5454; aufsteigend SCOTT;; 4: Länge 7; Hex 414e414c595354; aufsteigend ANALYST;; 5: Länge 4; Hex 80001d8e; aufsteigend ;; 6: Länge 4; Hex 208794f0; aufsteigend ;; 7: Länge 4; Hex 80000bb8; aufsteigend ;; 8: SQL NULL; 9: Länge 4; Hex 80000014; aufsteigend ;; ---TRANSACTION 4662, AKTIV 81 Sek. Start des Indexlesens MySQL-Tabellen in Verwendung 1, gesperrt 1 LOCK WAIT 2 Sperrstruktur(en), Heap-Größe 360, 1 Zeilensperre(n) MySQL-Thread-ID 7, OS-Thread-Handle 0x7f813c5c6700, Abfrage-ID 148, Localhost-Root-Aktualisierung Aktualisiere emp setze sal=3500, wobei empno=7788 ------- TRX HAT 81 SEKUNDEN AUF DIE GEWÄHRUNG DIESER SPERRE GEWARTET: ## 81 Sekunden gewartet Datensatzsperren, Speicherplatz-ID 16, Seitennummer 3, n Bits 88, Index „PRIMARY“ der Tabelle „test“. „emp“ TRX-ID 4662, Sperrmodus X sperrt Datensatz, aber nicht Lückenwartezeit Datensatzsperre, Heap Nr. 9 PHYSIKALISCHER DATENSATZ: n_Felder 10; kompaktes Format; Infobits 0 ## Thread 7 wartet darauf, dem Primärschlüssel in test.emp, Seitennummer=3, eine X-Sperre hinzuzufügen. 0: Länge 4; Hex 80001e6c; asc l;; 1: Länge 6; Hex 000000001018; aufsteigend ;; 2: Länge 7; Hex 91000001420084; aufsteigend B ;; 3: Länge 5; Hex 53434f5454; aufsteigend SCOTT;; 4: Länge 7; Hex 414e414c595354; aufsteigend ANALYST;; 5: Länge 4; Hex 80001d8e; aufsteigend ;; 6: Länge 4; Hex 208794f0; aufsteigend ;; 7: Länge 4; Hex 80000bb8; aufsteigend ;; 8: SQL NULL; 9: Länge 4; Hex 80000014; aufsteigend ;; ------------------ TABELLENSPERRE Tabelle „test“. „emp“ TRX-ID 4662 Sperrmodus IX ## Bevor Sie der Primärschlüsselzeile eine X-Sperre hinzufügen, fügen Sie der Tabelle zuerst eine Absichtssperre IX hinzu. Datensatzsperren, Speicherplatz-ID 16, Seitennummer 3, n Bits 88, Index „PRIMARY“ der Tabelle „test“. „emp“ TRX-ID 4662, Sperrmodus X sperrt Datensatz, aber nicht Lückenwartezeit Datensatzsperre, Heap Nr. 9 PHYSIKALISCHER DATENSATZ: n_Felder 10; kompaktes Format; Infobits 0 0: Länge 4; Hex 80001e6c; asc l;; 1: Länge 6; Hex 000000001018; aufsteigend ;; 2: Länge 7; Hex 91000001420084; aufsteigend B ;; 3: Länge 5; Hex 53434f5454; aufsteigend SCOTT;; 4: Länge 7; Hex 414e414c595354; aufsteigend ANALYST;; 5: Länge 4; Hex 80001d8e; aufsteigend ;; 6: Länge 4; Hex 208794f0; aufsteigend ;; 7: Länge 4; Hex 80000bb8; aufsteigend ;; 8: SQL NULL; 9: Länge 4; Hex 80000014; aufsteigend ;; ---TRANSAKTION 4615, AKTIV 1579 Sek., Thread innerhalb von InnoDB 1222 deklariert MySQL-Tabellen im Einsatz 2, gesperrt 0 2 Sperrstrukturen, Heap-Größe 360, 1 Zeilensperre MySQL-Thread-ID 3, OS-Thread-Handle 0x7f813c659700, Abfrage-ID 147, Localhost-Root, Daten werden gesendet select count(*) from t3 a,t3 b ## Dies ist das SQL, das aktuell von Thread 3 ausgeführt wird Trx-Lese-Ansicht sieht keine TRX mit ID >= 4662, sieht < 4659 TABELLENSPERRE Tabelle „test“. „emp“ TRX-ID 4615 Sperrmodus IX ## Thread 3 hält eine beabsichtigte IX-Sperre für die Tabelle und eine Zeilensperre X für den Primärschlüssel der Tabelle „test.emp“, Seitennummer=3 Datensatzsperren, Speicherplatz-ID 16, Seitennummer 3, n Bits 88, Index „PRIMARY“ der Tabelle „test“. „emp“ TRX-ID 4615, Sperrmodus X sperrt Datensatz, aber nicht Lücke Datensatzsperre, Heap Nr. 9 PHYSIKALISCHER DATENSATZ: n_Felder 10; kompaktes Format; Infobits 0 0: Länge 4; Hex 80001e6c; asc l;; 1: Länge 6; Hex 000000001018; aufsteigend ;; 2: Länge 7; Hex 91000001420084; aufsteigend B ;; 3: Länge 5; Hex 53434f5454; aufsteigend SCOTT;; 4: Länge 7; Hex 414e414c595354; aufsteigend ANALYST;; 5: Länge 4; Hex 80001d8e; aufsteigend ;; 6: Länge 4; Hex 208794f0; aufsteigend ;; 7: Länge 4; Hex 80000bb8; aufsteigend ;; 8: SQL NULL; 9: Länge 4; Hex 80000014; aufsteigend ;; Warum führt Thread 3 derzeit eine Select-t3-Tabellenoperation aus, sperrt aber die Seite num=3 in der Tabelle test.emp? Es ist möglich, dass die Transaktion von Thread 3 in der Tabelle test.emp nicht rechtzeitig festgeschrieben wurde. Daraus können wir schließen, dass Thread 3 Thread 7 blockiert und Thread 7 Thread 4, sodass die Grundursache Thread 3 ist. Senden Sie Thread 3 einfach so schnell wie möglich ab oder beenden Sie ihn. 3.5. Überprüfen Sie den Sperrstatus der Tabelle: mysql> Status wie „Tabelle%“ anzeigen; +----------------------------+---------+ | Variablenname | Wert | +----------------------------+---------+ | Tabellensperren_sofort | 100 | | Auf Tabellensperren gewartet | 11 | +----------------------------+---------+ 3.6. Überprüfen Sie die Statusvariable InnoDB_row_lock, um den Zeilensperrenkonflikt im System zu analysieren: mysql> Status wie „InnoDB_row_lock%“ anzeigen; +-------------------------------+--------+ | Variablenname | Wert | +-------------------------------+--------+ | Innodb_row_lock_current_waits | 0 | | Innodb_row_lock_time | 159372 | | Innodb_row_lock_time_avg | 39843 | | Innodb_row_lock_time_max | 51154 | | Innodb_row_lock_waits | 4 | +-------------------------------+--------+ 5 Zeilen im Satz (0,01 Sek.) MySQL> 4. Fazit Bei der Analyse der Sperrblockierung in InnoDB vergleichen wir mehrere Methoden: (1) Die Verwendung von „show processlist“ zum Anzeigen ist unzuverlässig. (2) Die Grundursache des Problems kann nicht direkt mithilfe von „show engine innodb status“ ermittelt werden. (3) Wenn Sie mit dem Debug-Tool von mysqladmin alle Threads anzeigen, die Sperren generieren, können Sie diese zwar sehen, aber nicht feststellen, welcher die Grundursache ist. (4) Nachdem Sie innodb_lock_monitor aktiviert haben, verwenden Sie „show engine innodb status“, um die Grundursache für die Sperrblockierung zu finden. Referenz: https://www.jb51.net/article/201222.htm Dies ist das Ende dieses Artikels über die MySQL-Deadlock-Prüfung und Deadlock-Entfernung. Weitere relevante Inhalte zur MySQL-Deadlock-Prüfung und Deadlock-Entfernung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Erstellen Sie mit Flutter eine verschiebbare Stapel-Widget-Funktion
>>: Reine CSS-Implementierung (kein Skript) Tooltip-Textaufforderungseffekt im HTML-Befehlsstil
Inhaltsverzeichnis 1. Mittelsmann-Modell 2. Beisp...
Ich bin kürzlich auf das Audiovisual Linux Projec...
Weitere Informationen zu Bedienelementen finden S...
Neueste Lösung: -v /usr/share/zoneinfo/Asia/Shang...
Ohne weitere Umschweife komme ich gleich zum Code...
Laden Sie die Windows-Version von Nginx von der o...
chmod-Befehlssyntax Dies ist die korrekte Syntax ...
1. Die chinesischen verstümmelten Zeichen erschei...
<html> <Kopf> <meta http-equiv=&quo...
Inhaltsverzeichnis Drag & Drop-Implementierun...
Zunächst wird setInterval als Hook gekapselt 👇 im...
Was ist Vite? (Es ist ein neues Spielzeug im Fron...
Eine Umgebung Installieren Sie VMware Tools auf C...
1. Überprüfen Sie, ob MySQL installiert ist Yum-L...
lsof (List Open Files) ist ein Tool zum Anzeigen ...