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
Opmerkingen
- Lees meta.stackoverflow.com/a/285557/124486 en het geaccepteerde antwoord
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.
SHOW OPEN TABLES;