Aprenda inglês em casa
Baixe gratuitamente as duas primeiras aulas
English for Reading and Listening
Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.
|
Busca |
Aprenda inglês em casa
Baixe gratuitamente as duas primeiras aulas
English for Reading and Listening
Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.
Por Luiz Paulo de Oliveira Santos
Data de Publicação: 25 de Setembro de 2006
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:
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:
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:
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.
![]() Recomendar este artigo |
Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS
Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.