Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eddy Goulart

MYSQL - PROCESSLIST + MYSQL Lento + limpeza em MYSQL

Recommended Posts

Boa tarde pessoas.

 

Temos um Sistema X que utiliza MYSQL 5.0, o sistema funciona em um servidor próprio que fica dentro da empresa, de uns tempos(tempão) pra ca o sistema começou aparecer uma certa lentidão, onde fiz uma pesquisa e alguns testes e observei que a lentidão vinha do B.D. Fiz alguns ajustes, como implementar mais INDEX`s pelos principais campos de busca do sistema, diminuir a quantidade de caracteres de campos VARCHAR e afins. Deu uma melhoradinha, mas ainda apresentava lentidão, então fiz uma busca mais profunda e cheguei no tal processlist onde me retornou um número que era perto de "1.960.000" onde achei um valor meio alto, isso tem algo a ver? Esse número é realmente alto?

 

Não entendi muito o que é esses processos, mas fui atras de info para elimina-los. Procurei alguns scripts pra eliminar esses processos, como KILL <nrprocesso>, mas não deu muito certo, o retorno foi:

"

Error code:1094

Unknown thread id 5691

"

E pelo numero essa thread existe sim.

 

Então gostaria de saber algumas opniões sobre o processlist, se ele pesa mesmo o serviço do MYSQL, e como de vez em quando fazer algum tipo de "limpeza" no mysql.

 

Ah, outra info, Parei o MYSQL e INICIEI novamente, o processeclist zerou.

 

Obrigado pela atenção

 

Aguardo,

 

ATT,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

O comando SHOW PROCESSLIST vai listar as conexões, elas estarão com estado SLEEP ou realizando uma consulta.

 

O que vai ajudar a esclarecer essa consulta é o comando EXPLAIN, se você tem a SQL "SELECT nome, email, date_cadastro FROM usuarios", ao rodar "EXPLAIN SELECT nome, email, date_cadastro FROM usuarios" vai exibir algumas informações úteis, como o índice que está sendo utilizado, quantas linhas são afetadas pelo índice, os índices possíveis, enfim, vale a pena verificar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, muito obrigado cara.

 

Não era bem essa minha pergunta, mas vlw pela info, pode ajudar futuramente.

 

Aguardo mais colaboradores, obrigado. =D

 

 

OK, muito obrigado cara.

 

Não era bem essa minha pergunta, mas vlw pela info, pode ajudar futuramente.

 

Aguardo mais colaboradores, obrigado. =D

Quando lanço o SHOW LISTPROCESS me retorna apenas um linha com a coluna id apontando "1.960.000", esses "1.960.000" são theads que estão sendo executadas no momento ou já executaram? Pelo numero alto to achando que pode estar ocupando algum tipo de memoria. Tem que fazer algum tipo de Garbage Collector/Limpeza de lixos?

 

Obrigado pela atenção,

 

Aguardo retorno,

 

ATT,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, a coluna id é apenas para identificar o processo, se eu usar o comando "SHOW PROCESSLIST" no meu localhost, vai trazer 2 linhas, uma que é a conexão aberta pelo Navicat (programa que uso para manipular o banco) e outra onde o campo info vai traser o valor "SHOW PROCESSLIST", que é a query, cada uma com um id, este id é auto incrementado, se o processo for morto, ele deixará de existir e não afetará o banco.

 

Se ainda assim não consegui te ajudar, poste um print, pois está difícil de compreender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sou bom nisso, mas no que já estudei pra desempenho as coisas que pode te ajudar são:

 

Use SSD + RAID que você vai deixar muito mais rápido.

Use muita memoria RAM, quanto mais melhor

Use INDEX da forma correta, para você ter ideia, tenho uma tabela com mais de 100 milhões de linhas, uma consulta nela demora no máximo 0,2 segundos, quando faço um JOIN com outra tabela esse mesma consulta demora mais de um minuto.

Ative o log de consultas lentas no MYSQL, e veja se uma QUERY está construída de forma errada.

 

Em condições normais, o que normalmente deixa lento um DB são consultas mal feitas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.