Desempenho lento do servidor MySql - O que e como verificar?

10

início: aviso legal

Eu não sou um DBA do MySql Server; Conheço principalmente o MSSQL - e é por isso que preciso da sua ajuda.

fim: aviso legal

Me pediram para verificar por que o mecanismo do servidor MySql está com um desempenho ruim - não vi nem mantive os bancos de dados envolvidos e gostaria de saber por onde começar.

Por onde começo?

Que perguntas devo fazer àqueles que têm acesso ao MySql - nem sei se eles estão usando o phpmyadmin ou alguma outra ferramenta.

Essencialmente:

  • Quais itens devo pedir e como responderia a cada peça que eles fornecerem?

Quais são os principais itens a serem solicitados quando o problema estiver no desempenho do banco de dados?

no MSSQL, posso verificar sp_who2as conexões existentes para ver se alguma coisa está bloqueando. Qual é a contrapartida no mysql? * não precisa ser específico, pois pode haver muitos tipos de resultados para cada item, mas gostaria de ajudar a fazer a bola rolar, pois afeta os usuários - aparentemente eles configuram o mecanismo mysql sem ter um dba a bordo.

Yasker Yasker
fonte
Você verificou os problemas comuns de recursos - CPU cheia, RAM cheia / não usada, sobrecarga de E / S? O 101 coisas que você começaria em um servidor sql?
TomTom
Ainda não tive a chance - só quero estar preparado quando chegar, para que tudo continue em movimento - é possível que as pessoas no local já tenham verificado e com os aplicativos e servidores de banco de dados com alta especificação (empresa esplêndida) i gostaria de se concentrar no que acontece se o hardware não é o problema
Yasker Yasker
Fora da experiência - comece por aí. Eu vi "servidores de ponta" com um disco rígido SCSI (que eles devem ter saído de algum leilão do ebay) que tinham tempos de resposta em vários segundos ... Eu validaria o lado de E / S. Também ajudará - IO em excesso pode apontar para índices ausentes se os números forem totalmente totalmente ridículos.
TomTom

Respostas:

9
  • Registrar consultas lentas - se o seu sistema possui muitas consultas, fica mais difícil descobrir quais consultas estão desacelerando o sistema. O MySQL fornece uma ferramenta para registrar consultas lentas para análises adicionais http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

  • EXPLAIN O comando estendido mostra detalhes sobre suas consultas quando você não tem idéia do que está acontecendo http://dev.mysql.com/doc/refman/5.0/en/explain-extended.html

  • Para acelerar suas consultas, use Índice - Uma boa prática é adicionar índice, vendo quais campos estão na cláusula WHERE e adicionar índice para eles. Além disso, se você estiver recuperando todos os campos de uma tabela, a consulta será mais lenta, buscando todos os dados do disco. Na consulta SELECT, você deve especificar quais campos você precisa trazer para trazê-los todos com *
  • Faça uso do cache de consulta http://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html
  • Verifique se as opções do arquivo de configuração do servidor MySQL estão otimizadas de acordo com o seu hardware http://dev.mysql.com/doc/refman/5.5/en/option-files.html
  • Verifique se você está usando tipos de dados otimizados ao criar uma estrutura de tabela. Por exemplo, os campos "Comentários" têm tamanho de 256 caracteres, responda ao MYSQL com um campo do tipo VARCHAR (256) em vez de usar TEXT. A consulta será muito mais rápida.

Procedure_Analyse () pode ajudá-lo a encontrar tipos de dados ideais:

http://www.mysqlperformanceblog.com/2009/03/23/procedure-analyse/

http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html

  • Existem ferramentas de código aberto da Percona - http://www.percona.com/software/percona-toolkit que podem ser úteis para os DBAs do MySQL e, especialmente, para quem é novo no MySQL, essas ferramentas fornecerão uma boa assistência.
Mahesh Patil
fonte