MySQL – emitindo atualizações de baixa prioridade

MySQL – emitindo atualizações de baixa prioridade

Existe uma maneira de executar atualizações de baixa prioridade no mysql?

Estou executando um aplicativo de carga muito alta, onde pode facilmente haver literalmente milhares de usuários tentando atualizar simultaneamente os mesmos registros de dados. Trata-se principalmente de informações estatísticas baseadas em sessões, muitas das quais podem ser ignoradas caso haja um tempo de espera associado à solicitação. Gostaria de poder verificar se alguma tabela/linha está bloqueada e, se estiver, não passar uma consulta de atualização para o servidor. Isso é possível?

Responder1

Qual mecanismo de banco de dados você está usando? MyISAM ou InnoDB? Se for MyISAM, você pode usar o seguinte comando para visualizar os bloqueios:

SHOW FULL PROCESSLIST;

Fonte:Como posso mostrar os bloqueios do MySQL?

No entanto, eu recomendaria que você adotasse uma abordagem diferente. Em vez de ter um único ponto de contenção, simplesmente insira uma nova linha para cada ponto de dados com INSERT DELAYED. Então, no final do dia, ou sempre que precisar dos dados, você poderá processar tudo em lote. Observe que isso funciona apenas para os tipos de mecanismo MyISAM, MEMORY e ARCHIVE.

Fonte: dev.mysql.com/doc/refman/5.1/en/insert-delayed.html

Acho que essa questão pertence ao Stack Overflow. Você provavelmente obterá uma resposta melhor lá.

-Geoffrey Lee

informação relacionada