Acho que show processlist;
é a melhor maneira de começar a depurar esse problema. show processlist
mostra quais encadeamentos estão em execução e seu estado.
Você também pode usar o comando Explain
, especialmente em sua maioria consultas comuns. Isso mostrará o plano de execução das consultas desejadas. Possivelmente, algumas das consultas não têm índices ou não estão sendo usadas corretamente.
Por outro lado, você provavelmente está usando o mecanismo de armazenamento MyISAM. Se você não precisa de pesquisas de texto completo (ou outros recursos específicos do MyISAM), eu recomendo que você migre para o InnoDB, que fornece bloqueios baseados em linha em vez de bloquear a tabela inteira, entre outros recursos, o que provavelmente melhorará o desempenho de seu MySQL. Aqui está uma boa comparação entre MyISAM e InnoDB .
Possivelmente, você também precisa ajustar algumas de suas variáveis do MySQL. Recomendamos que você ajuste o key_buffer_size
, que é o tamanho do buffer usado para blocos de índice. Ajuste isso para pelo menos 30% da sua RAM ou o processo de re-indexação provavelmente será muito lento.
Por último, mas não menos importante, ative o log de consultas lentas . Isso mostrará quais consultas estão demorando muito para serem executadas.
Espero que isso ajude!