Originariamente inviato da andr3a
Le query servono per generare pagine HTML, ovvio ... considera che i siti di informazione salvano prima news o altro e decidono poi quando mostrarle durante il giorno. Non è che appena inseriscono nel DB queste vengono pubblicate.
Allora guarda ti dico come faccio io, sistema che a me ha salvato la vita. ( Ma penso che ci hai pensato già. )

Io il sistema di cache lo faccio a monte, alla pagina HTML. E cioè: ho fatto in modo che la pagina che mostrasse gli articoli del sito fosse 'statica' nel senso che quella è e quella rimane, non ci sono parti "HTML" che necessariamente si aggiornano come potrebbe essere una colonna 'Ultimi aritcoli pubblicati' o cose del genere. Una volta pubblicato un articolo la pagina HTML che lo contiene quella è e quella rimane. ( Ovviamente per generare quest'articolo vengono fatte una decina di query che tanto semplici non sono e che se venissero fatte per ogni utente andrebbe a pu**ane tutto )

Cosi la prima volta che l'articolo deve essere generato, cioè la prima visita che un utente porta a quell'articolo necessariamente devono essere eseguite le varie query per costrutire la pagina HTML, ma una volta fatto veiene preso il contenuto tramite ob_* e messo in un file, che può essere: cache/md5($_SERVER['REQUEST_URI']).bk

la pagina dell'articolo ogni volta controlla se è presente un file .bk nella cartella cache ovviametne controllando l'url richiesto con md5, se è presente viene preso il contenuto, viene stampato ( che in questo caso corrisponde all'output generato dalla prima visita ) e viene interrotto lo script cosi da non fare nessuna query.

--
Se nel caso la pagina dell'articolo dovesse cambiare basta cancellare il file di cache in modo che venga rigenerato aggiornato automaticamente, se ti serve posto il mio codice