In meiner Prozessliste wird ein Prozess mit langer Laufzeit angezeigt. Es gibt keine Abfrage, nur den Befehl „Feldliste“ mit einer leeren Infospalte. Es hat fast 20 Minuten auf eine Tabellen-Metadatensperre für eine nicht angegebene Tabelle gewartet.

Das Googeln nach „MySQL-Befehlsfeldliste“ hat nichts Nützliches zurückgegeben. Kann mir jemand sagen, was dieser Befehl versucht zu tun und was könnte es verursacht haben?

Verwenden von MySQL 5.6.35 auf einer CentOS 6-Box

Geben Sie hier die Bildbeschreibung ein.

Kommentare

Antwort

Suchen Sie im PROCESSLIST nach Zeilen mit einer höheren Zeit als dieser (1188). Es wahrscheinlich gibt den Bösewicht an. Der Besitzer beider Zeilen kann einen Hinweis geben.

Eine „Metadatensperre“ beinhaltet etwas anderes als einfache Abfragen – möglicherweise ALTER TABLE oder LOCK TABLES (wie bei mysqldump) usw.

„Feldliste“ klingt wie das Durchsuchen von information_schema nach den Spalten in der Tabelle, aber ich könnte mich irren.

Eine andere Möglichkeit besteht darin, dass eine offene Transaktion darauf wartet, COMMITted. (Und es ist „zwischen“ Anweisungen, wenn die PROCESSLIST erfasst wurde.)

SHOW OPEN TABLES; könnte einen weiteren Hinweis geben.

Kommentare

  • Sollte wahrscheinlich in die Frage aufgenommen haben, dass es der am längsten laufende Prozess ist. Der Teil information_schema ist jedoch sinnvoll,
  • Ich habe einen weiteren Gedanken hinzugefügt – zu Transaktionen. Und SHOW OPEN TABLES;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.