Teste a perfomance do MySQL


Fonte: dicas-l

by Luiz Paulo de Oliveira Santos

Todos leitores que um dia precisaram hospedar uma aplicação em um provedor de hospedagem têm a mesma dúvida: Será que o provedor possui performance no acesso a banco de dados?

Atualmente todos os provedores disponibilizam MySQL como banco de dados padrão.

O MySQL é um SQL leve, muito veloz e indicado para aplicações onde se deseja armazenar e extrair informações rapidamente. Porém peca por não ter alguns recursos para aplicações mais elaboradas, como triggers por exemplo, que somente está disponível à partir da versão 5 do MySQL.

Porém as vezes, o provedor hospeda a página em um equipamento e o banco em outro, e com isso podemos ter gargalos de performance, ou mesmo situações mais complexas como ter “dezenas” de domínios armazenados em um mesmo servidor, e todos rodando sistemas de portais como Xoops, Bitweaver, Joomla ou outros. Logo, com muita concorrência no servidor a performance pode sofrer alterações, e geralmente para pior.

Logo, testar performance em um servidor de banco de dados é fundamental. E podemos fazer alguns pequenos testes que poderão nos indicar se dia-a-dia a performance de nosso servidor está se mantendo ou se degradando.

O MySQL implementa uma função chamada BENCHMARK(). Essa função é bem interessante, pois executa uma operação <n> vezes, e devolve o tempo que levou para executar essa operação.

Por exemplo:

Código:

  mysql> SELECT BENCHMARK(1000000,1+1);
  +————————+
  | BENCHMARK(1000000,1+1) |
  +————————+
  |                      0 |
  +————————+
  1 row in set (0.32 sec)
O exemplo acima demonstra que o MySQL pode executar 1000000 expressões de soma (1+1) + em 0.32 segundos em um PentiumII 400MHz. Quanto menor for o valor, mais rápido será a performance do banco.

Por exemplo, podemos testar o resultado de um SELECT, porém esse SELECT dele retornar uma única linha e tratar uma única coluna:

Código:

  SELECT benchmark( 1000000, (SELECT count( artigo ) FROM dbfreemag ));

Dessa forma podemos testar o desempenho do banco no servidor.

Mas seria interessante avisar o administrador antes de rodar algum tipo de benchmark, pois CPU do servidor é altamente exigida nesse momento. Principalmente se for rodar queries de teste mais pesadas.

Se for rodar alguma Query pesada, CERTIFIQUE-SE QUE NÃO ESTÁ FAZENDO EM UM SERVIDOR DE PRODUÇÃO. Queries pesadas devem ser rodadas apenas em servidores de teste, porque podem comprometer gravemente a performance do servidor, como por exemplo:

Código:

  SELECT BENCHMARK(1000000, (SELECT BENCHMARK(1000000, 1+1)))

Espero que a dica seja útil, mas utilizem a função com cautela.

Forte abraço e até mais.

 

The message is simple:
STOP READING BUGTRAQ, STOP POSTING EXPLOITS, CLOSE YOUR FUCKING WEB BROWSER,
START READING A BOOK, START LEARNING SOMETHING THAT WILL BE MORE SELF-FULFILLING
THAN BEING A FUCKING LEECH THAT MAKES MONEY OFF OF THE TIME AND EFFORT OF PEOPLE
SMARTER THAN YOU COULD EVER HOPE TO BE.

fonte: fórum darkers->insanity

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s