BlogAjuda

Dicas, temas e informações sobre WordPress, blogosfera brasileira e monetização.

Queries MySQL e tempo de carregamento: como exibir esses dados?

Rodrigo P. Ghedin WordPress

Uma forma bacana de verificar se seu WordPress está consumindo muitos recursos do servidor é através da quantidade de consultas (queries) ao banco de dados que são realizadas a cada carregamento de página. O WordPress, por ser um sistema dinâmico e não ter, por padrão, um sistema de cache, sempre solicita dados ao banco de dados para “montar” a página e exibir o que o leitor deseja. Assim, saber se essa comunicação está normal é uma boa maneira de encontrar erros e corrigi-los.

Recentemente passei por um sufoco desses. No WinAjuda, graças ao plugin Related Entries, que simplesmente dobrava a quantidade de consultas ao BD quando executado, derrubei alguns servidores por aí, hehe :D. Saber a quantidade de consultas ao BD foi essencial para que eu detectasse o problema, e o eliminasse.

O próprio WordPress tem uma tag especial com essa finalidade. Duas, para ser mais exato… Basta inserí-las no local desejado, e pronto. Sem mais delongas, vamos a ela:

<?php echo get_num_queries(); ?> consultas - <?php timer_stop(1); ?> segundos.

A tag das queries não possui parâmetros. Já a do tempo, sim. O número 1 entre parênteses (1) faz com que o valor seja mostrado (meio idita esse parâmetro, não? Digo, se não quiser mostrar, pra quê colocar a tag?). Além desse útil parâmetro, há outro que pode ser adicionado na seqüência, indicando a quantidade de casas depois da vírgula que serão exibidas. O padrão é 3, e o valor pode ser de 0 a 10. Exemplo:

<?php timer_stop(1,5); ?>

Para servir de base para sua análise, uma instalação limpa do WordPress faz, em média, de 25 a 30 consultas para exibir uma página (o número varia de acordo com o lugar do blog - home, post, arquivos etc.).

A propósito, este post foi motivado por uma dúvida do Thiago Mobilon. Antes tarde do que nunca, né? :).

Tags: , , , , , , , , , .

5 comments

Excelente post.
Me motivou a tomar mais cuidado com o que faço em minhas ações no Wordpress.

Gozado isso.
Profissionalmente, não aceito lançar um projeto sem um monte de QA’s, testes de usabilidade, etc e tal. Derrepente, em um projeto pessoal como o Labpress, me pego fazendo absurdos.

Casa de ferreiro, espeto de pau, né?

PS: O Labpress, em sua home, registrou 27 consultas - 1.930 segundos.

Posted by Alê Moreno
August 29th, 2007, às 10:47 am. #.

Excelente dica Rodrigo, obrigado.
Já fiz o testo no meu blog e fiquei satisfeito com o desempenho.
O Nerd Games faz 22 consultas na página principal, 28 nos posts e 25 nas páginas.
Fiquei abaixo dos 30, o que significa que estou “quase” com WP limbo, embora tenho vários plugins.
Mas mesmo assim não abuso muito, deixo já por padrão o WP-Cache ativado.
Quais o resultados que você obteve aqui no BlogAjuda?
Abraço!

Posted by Thiago Rodrigues
August 29th, 2007, às 11:03 am. #.

Agora sim!
Já apliquei lá no TecnoBlog. A homepage está mostrando 34 consultas, e a silglepage mostra 21.

Obrigado pela dica Ghedin.

um abraço!

Posted by Thiago Mobilon
August 29th, 2007, às 2:14 pm. #.

[…] um artigo no BlogAjuda que mostra como colocar o numero de Queries executados e o tempo de carregamento de […]

Posted by Wordpress: MySQL Queries e Loading time « Blue MUIOMUIO - Por Mario Andrade
August 29th, 2007, às 6:18 pm. #.

Opa, blz?

Sobre o primeiro parâmetro da função timer_stop() é útil para quando vc deseja apenas receber o resultado - para armazená-lo em alguma variável, por exemplo - afim de realizar cálculos ou algo semelhante.

Se o único retorno fosse a exibição (ex.: echo $x), isso não seria possível.

[]s
Gustavo

Posted by Gustavo
August 30th, 2007, às 2:48 pm. #.

Leave a comment!



Message



BlogAjuda © 2007.

Simple Grey theme developed by Rodrigo P. Ghedin.

WordPressFAMFAMFAM