In mijn proceslijst zie ik een langlopend proces. Er is geen vraag, alleen het commando “Lijst met velden” met een lege infokolom. Het heeft bijna 20 minuten gewacht op een metagegevensvergrendeling van een tabel op een niet-gespecificeerde tabel.

Googelen naar “MySQL command Field List” heeft niets nuttigs opgeleverd. Kan iemand me vertellen wat dit commando probeert te doen en wat kan de oorzaak zijn geweest?

MySQL 5.6.35 gebruiken op een CentOS 6-box

voer hier een beschrijving van de afbeelding in

Opmerkingen

Antwoord

Zoek naar regels in de PROCESSLIST met een tijd hoger dan die (1188). Het waarschijnlijk geeft de schurk aan. De eigenaar van beide rijen kan een aanwijzing geven.

Een “metadata lock” omvat iets anders dan eenvoudige zoekopdrachten – mogelijk ALTER TABLE of LOCK TABLES (zoals voor mysqldump), enz.

“Lijst met velden” klinkt als het zoeken naar information_schema voor de kolommen in de tabel, maar ik zou het mis kunnen hebben.

Een andere mogelijkheid is dat er een openstaande transactie wacht om COMMITted. (En het is “tussen” instructies wanneer de PROCESSLIST werd gepakt.)

SHOW OPEN TABLES; zou een andere aanwijzing kunnen geven.

Opmerkingen

  • Waarschijnlijk had in de vraag moeten staan dat dit het langstlopende proces is. Het information_schema-gedeelte is echter logisch.
  • Ik heb nog een gedachte toegevoegd – over transacties. En SHOW OPEN TABLES;

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *