Na mojej liście procesów widzę długotrwały proces. Nie ma zapytania, tylko polecenie „Lista pól” z pustą kolumną informacyjną. Czekał prawie 20 minut na blokadę metadanych tabeli w nieokreślonej tabeli.
Wyszukiwanie w Google hasła „Lista pól polecenia MySQL” nie zwróciło niczego użytecznego. Czy ktoś może mi powiedzieć, co próbuje zrobić to polecenie i co mogło to spowodować?
Używanie MySQL 5.6.35 na pudełku CentOS 6
Komentarze
- Przeczytaj meta.stackoverflow.com/a/285557/124486 i zaakceptowaną odpowiedź
Odpowiedź
Poszukaj wierszy w PROCESSLIST
z czasem wyższym niż ten (1188). Prawdopodobnie wskazuje złoczyńcę. Właściciel obu wierszy może dać wskazówkę.
„Blokada metadanych” obejmuje coś innego niż proste zapytania – prawdopodobnie ALTER TABLE
lub LOCK TABLES
(jak dla mysqldump
) itd.
„Lista pól” brzmi jak sondowanie information_schema
kolumn w tabeli, ale mogę się mylić.
Inną możliwością jest to, że istnieje otwarta transakcja, która czeka na COMMITted
. (I to jest „pomiędzy” instrukcjami, kiedy PROCESSLIST
został złapany.)
SHOW OPEN TABLES;
może dać kolejną wskazówkę.
SHOW OPEN TABLES;