Neste post, mostro uma forma de listar os processos ativos em um banco MySQL e como encerrar forçadamente eles. Desta forma, você consegue verificar quem está conectado e o que eles estão executando.
system user: Atividade que está sendo executada internamente em uma thread, pelo próprio MySQL. Neste caso, não possui informações na coluna Host (veja abaixo);
unauthenticated user: Está ligada a uma thread que foi iniciada com um cliente (client), mas que ainda não foi autenticada;
Command: O tipo de comando que está sendo executado no momento. Não é a query em si, mas o tipo de comando, que pode ser um dos valores abaixo:
Binlog Dump: Thread no servidor principal (master), indicando que logs binarios estão sendo enviados para um servidor secundario (slave);
Daemon: Indica que a thread está trabalhando internamente para o servidor e não está disponível para clients;
Error: Indica que a thread está com problema. O manual não explica muito este item, mas me parece bastante obvio. 🙂
Fetch: A thread está recuperando os resultados de um comando (prepared statement). (Vem após o execute);
Long Data: A thread está recuperando um volume grande de informações ao executar um comando (prepared statement);
Refresh: A thread está atualizando/renovando informações de tabelas, logs, caches, reiniciando variáveis de status ou informações relativas a servidores de replicação;
State: Exibe uma ação, evento ou status que indica o que a thread está fazendo. Esta coluna possui um número grande de valores possíveis. Basicamente, ela mostra em qual etapa do command atual ela está. Consulte o manual do MySQL (8.14.2 General Thread States) para ver uma lista completa dos valores possíveis para esta coluna;
Info: Mostra o statement que está sendo executado no momento ou NULL se não estiver executando nada. Se o comando inicial foi uma chamada para uma procedure e ela está executando um select no momento, o comando exibido será o select. No ‘modo tabela’, esta coluna exibe apenas os 100 primeiros caracteres;
Infelizmente (ou felizmente…) o MySQL não possui opção de matar processos em massa/lote. Para fazer isso, você vai ter que fazer algum script que execute os comandos kill individualmente.