WordPress, quante queries vengono inviate al database per visualizzare una pagina? Ecco la funzione per scoprirle

Sapere il numero di queries necessarie per visualizzare una certa pagina web è possibile grazie ad una funzione in WordPress, get_num_queries()
La grande differenza tra un sito statico e un sito dinamico sta nel fatto che il primo ha delle pagine che mostrano un contenuto statico, (ovvero testo, immagini, video, ecc.) cioè fisso, non modificabile dal visitatore. Il linguaggio con cui si realizzano pagine web statiche è l’HTML.
Un sito dinamico, realizzato ad esempio con HTML + linguaggi dinamici come ASP, JSP o PHP, invece, è tale per cui ci sono delle funzioni che presentano un contenuto diverso a seconda di ciò che richiede il visitatore.
In altre parole, nel sito dinamico il visitatore interagisce con la pagina. Qualche esempio: il visitatore inserisce un commento e quest’ultimo verrà visualizzato dopo aver premuto un bottone; si fa una ricerca di una parola in un motore di ricerca interno al sito e verranno presentati dei risultati; si clicca su un tag (una sorta di ‘parola chiave’ identificativa di un articolo di un blog) e si mostrano tutti i gli articoli che hanno quel tag.
Ogni funzione richiede dei dati su cui lavorare, e ciò si traduce in una o più queries che vengono inviate al database. L’altra grande differenza tra pagine web statiche e dinamiche consiste proprio nella necessità, per il sito statico, di avere un database che interpreti le queries e restituisca una risposta, e dunque un contenuto che verrà inserito nella pagina.
Un sito statico, è più veloce da caricare rispetto ad un sito dinamico, a parità di performance di server che ospita le pagine del sito stesso ovviamente.
Cercare di ridurre il più possibile le queries ‘inutili’ è dunque fondamentale per chi ha un sito realizzato con un CMS, come WordPress.
Come fare per capire quante queries vengono inviate al database per visualizzare una pagina?
In WordPress basta usare, questa:
<?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds.
Inseritela prima della chiusura del tag </body> (in WordPress, nella penultima riga del file footer.php del vostro template) e vi apparirà il numero di queries e il tempo necessario al database per processarle.
Troppe queries rallentano molto il caricamento della pagina, per fortuna esistono plugin come WP Super Cache che permettono di consegnare al visitatore pagine che sono state salvate in una cartella (cache) al momento della prima richiesta di quella stessa pagina da parte di un altro visitatore. Il primo visitatore che richiede una certa pagina, dunque, aspetterà un certo lasso di tempo, e una copia della pagina verrà salvata nella cache, sul server.
Dal secondo visitatore in poi che invece richiede quella stessa pagina, quest’ultima non verrà elaborata in modo dinamico, bensì statico, prendendo la copia presente nella cache, e abbasserà il tempo di caricamento della pagina stessa in modo significativo.
Si ha inoltre la possibilità di mettere in cache anche i widget (gli elementi presenti nella colonna laterale), i quali richiedono anch’essi numerose queries per essere gestiti e visualizzati.
loading...