Bom dia Pessoal, Tudo certo? sou novo aqui no Clube do Hardware.
Precisava da ajuda de vocês, trabalhamos com Mysql, Oracle, Postgres, e Sqlite(Mobile). Mas estamos com problemas em 2 bancos Mysql que temos aqui. o que acontece, temos uma aplicação web em java, e um aplicativo android rodando na ponta. As atualizações de dados são manuais (o vendedor decide), nessa carga, uma aplicação java lê os dados do mysql, gera o json e envia via WS para o android.
O sistema flui naturalmente, temos dezenas de clientes utilizando esse sistema, mas acontece que em 2, muito esporadicamente, a carga fica extremamente lenta, gerando sobrecarga na aplicação java (rodando no Tomcat), fazendo a CPU do servidor ficar o tempo todo em 100%.
Já descobrimos o que causa, normalmente é alguma tabela do sistema. É como se ela perdesse o índice, e ai, uma carga que demora 1 segundo, passa para 30 segundos, e com 100 vendedores ou mais fazendo carga, o sistema não aguente e para.
Quando analisamos (no PHP Myadmin) a tabela (anexo), os índices estão lá, mas a quantidade (não sei se isso é a cardinalidade do índice) está zerada. Rodando um analyze da tabela, essa quantidade é gerada novamente e a consulta volta a ser instantânea.
A única diferença desses 2 bancos para os outros que temos, é que, tanto o Mysql, quanto a aplicação/Tomcat rodam no cliente e numa VM Windows Server, os outros clientes todos são unix/linux.
O problema é que não podemos parar a operação assim nos clientes, isso gera incômodo e insatisfação. Gostaria de tentar evitar que isso acontecesse, mas já pesquisei e não achei nada (posso estar procurando errado). Alguém já passou por isso e conseguiu resolver definitivamente, que possa dar uma luz
Desculpe se errei alguma coisa, é meu primeiro tópico aqui.