Na minha lista de processos, vejo um processo de longa execução. Não há consulta, apenas o comando “Lista de campos” com uma coluna de informação vazia. Está esperando quase 20 minutos em um bloqueio de metadados de tabela em uma tabela não especificada.
Pesquisando por “Lista de campos de comando do MySQL” não retornou nada útil. Alguém pode me dizer o que este comando está tentando fazer e o que pode ter causado isso?
Usando MySQL 5.6.35 em uma caixa CentOS 6
Comentários
- Leia meta.stackoverflow.com/a/285557/124486 e a resposta aceita
Resposta
Procure por quaisquer linhas em PROCESSLIST
com um tempo superior a esse (1188). É provavelmente indica o vilão. O proprietário de ambas as linhas pode dar uma pista.
Um “bloqueio de metadados” envolve algo diferente de consultas simples – possivelmente ALTER TABLE
ou LOCK TABLES
(como para mysqldump
), etc.
“Lista de campos” soa como sondar information_schema
pelas colunas da tabela, mas posso estar errado.
Outra possibilidade é que haja uma transação aberta que está esperando para ser COMMITted
. (E é “entre” as declarações quando PROCESSLIST
foi capturado.)
SHOW OPEN TABLES;
pode dar outra pista.
SHOW OPEN TABLES;