MySQL “Muitas conexões” podem fazer com que a consulta já em execução pare?

1

Eu tentei executar uma consulta de migração de dados em um servidor de banco de dados ativo e, depois de um minuto, não consegui conectar-me ao MySQL por meio da linha de comando devido a "Muitas conexões". Eu tive que matar a consulta e reiniciar o MySQL. Eu não tentarei executar tal consulta em um sistema ao vivo durante o dia, novamente:)

Esta mesma consulta demorou menos de dois minutos em cópia de tráfego muito baixo do servidor de produção, terminando bem.

É provável que o tráfego para o servidor tenha atrasado essa consulta?

    
por Chad Johnson 09.10.2009 / 23:27

1 resposta

3

Eu tenho um palpite de que o problema que você encontrou foi relacionado a FLUSH TABLES ou LOCK TABLES, presumindo que você esteja usando mysqldump ou algo similar para fazer sua migração. mysqldump sem jogar - a transação única presume um tipo de tabela MyISAM e bloqueia a tabela para evitar novas gravações durante o descarregamento, para que você obtenha um instantâneo consistente. Se você estiver usando tabelas InnoDB e ativando -single-transaction, uma das primeiras consultas executadas serão as tabelas flush que fecham e reabrem todas as tabelas no banco de dados, de modo que você obtenha um snapshot consistente entre as tabelas. Ou pode fazer com que as consultas de entrada se acumulem, esperando que os bloqueios sejam liberados, mas provavelmente não seriam perceptíveis em seu replicante de carga leve.

    
por 09.10.2009 / 23:59

Tags