Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/
GaussDB(for MySQL)/
Perguntas frequentes/
Desempenho do banco de dados/
Como lidar com um grande número de tabelas temporárias sendo geradas para transações longas e alto uso de memória?
Atualizado em 2024-09-29 GMT+08:00
Como lidar com um grande número de tabelas temporárias sendo geradas para transações longas e alto uso de memória?
Cenário
O uso de memória de uma instância do GaussDB(for MySQL) continuou aumentando das 11:30 às 12:27 e atingiu o limite de memória.
Figura 1 Uso da memória
Possíveis causas
- Verifique o arquivo processlist.log. Neste exemplo, mostrado abaixo, havia duas instruções SQL lentas nesse período.
Figura 2 Instruções SQL lentas
- Analise logs de consulta lentos gerados nesse período de tempo. Havia cerca de 90 GB de dados e cerca de 1 bilhão de linhas de dados nos logs, e havia duas instruções SQL que levavam de 40 a 50 minutos para serem executadas. O tempo de execução basicamente se sobrepôs quando o uso de memória subiu nos resultados de monitoramento, então sabemos que o alto uso de memória foi causado por tabelas temporárias.
Solução
- Atualize as especificações da instância para manter o uso da memória dentro de um intervalo adequado, evitando que um aumento repentino no tráfego cause uma falha em OOM. Para obter detalhes, consulte Alteração de vCPUs e memória de uma instância de BD.
- Otimize instruções SQL lentas conforme necessário.
Tópico principal: Desempenho do banco de dados
Feedback
Esta página foi útil?
Deixar um comentário
Obrigado por seus comentários. Estamos trabalhando para melhorar a documentação.
O sistema está ocupado. Tente novamente mais tarde.