Heim  >  Artikel  >  Datenbank  >  MySQL prüft, ob die Tabelle gesperrt ist

MySQL prüft, ob die Tabelle gesperrt ist

(*-*)浩
(*-*)浩Original
2019-05-07 16:51:3732997Durchsuche

MySQL-Methode zum Überprüfen, ob die Tabelle gesperrt ist: Rufen Sie zuerst das Befehlsfenster auf und führen Sie dann den Befehl „show engine innodb statusG;“ aus, um die SQL-Anweisung zu überprüfen, die den Deadlock verursacht, und die Indexsituation zu analysieren.

MySQL prüft, ob die Tabelle gesperrt ist

kann direkt in der MySQL-Befehlszeile ausgeführt werden: show engine innodb statusG;

Sehen Sie sich die SQL-Anweisungen an, die den Deadlock verursacht haben und die Indexsituation analysieren, dann SQL optimieren und dann Prozessliste anzeigen;

Empfohlener Kurs: MySQL-Tutorial.

mysql> show status like 'Table%';

+----------------------------+----------+
| Variable_name        | Value |
+----------------------------+----------+
| Table_locks_immediate | 105         |
| Table_locks_waited   | 3           |
+----------------------------+----------+

Table_locks_immediate bezieht sich auf die Häufigkeit, mit der Sperren auf Tabellenebene sofort erhalten werden können. Die Häufigkeit, mit der auf den Erhalt von Sperren auf Tabellenebene gewartet werden muss

show OPEN TABLES where In_use > slow_query_log=TRUE

slow_query_log_file=c:/slow_query_log.txt

long_query_time=3

Denken Sie nach Abschluss des Hinzufügens daran, den MySQL-Dienst neu zu starten, damit er wirksam wird. Protokoll die Ausgabe. Lächeln Sie, geben Sie schließlich den Befehl im MySQL-Client ein:

Variablen wie „%quer%“ anzeigen; Überprüfen Sie, ob es in Ordnung ist

Mysql-Protokoll für langsame Abfragen aktivieren

Konfiguration anzeigen:

//查看慢查询时间
show variables like "long_query_time";默认10s
//查看慢查询配置情况
show status like "%slow_queries%";
//查看慢查询日志路径
 show variables like "%slow%";
-slow_query_log是否记录慢查询。用long_query_time变量的值来确定“慢查询”。
-slow_query_log_file慢日志文件路径
-long_query_time慢日志执行时长(秒),超过设定的时间才会记日志
Kommen Sie zurück zum Punkt, zurück zum Ausgangspunkt unseres Problems. MySQL-Abfragetabellen-Deadlock und Tabellenschritte zum Beenden des Deadlocks

1. Fragen Sie ab, ob die Tabelle gesperrt ist, und zeigen Sie OPEN TABLES an, wo In_use > 0;

2. Fragen Sie den Prozess ab

zeigen Sie die Prozessliste an. Fragen Sie den entsprechenden Prozess ab === und beenden Sie dann die ID

Zusätzlich:

Anzeigen des Transaktion wird gesperrt

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

Transaktionen anzeigen, die auf Sperren warten

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

Das obige ist der detaillierte Inhalt vonMySQL prüft, ob die Tabelle gesperrt ist. 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