Memorizzazione nella cache delle query MySQL
Domanda
Esiste un modo semplice per memorizzare nella cache MySQL queries
In PHP
o in mancanza di ciò, esiste un piccolo set di classi che qualcuno ha scritto e reso disponibile che lo farà?Posso memorizzare nella cache un'intera pagina ma non funzionerà poiché alcuni dati cambiano ma altri no, voglio memorizzare nella cache la parte che non lo fa.
Soluzione
Questa è un'ottima panoramica su come memorizzare nella cache le query in MySQL:
Altri suggerimenti
Puoi usare Zend Cache per memorizzare nella cache i risultati delle tue query, tra le altre cose.
Penso che la dimensione della cache delle query sia 0 per impostazione predefinita, che è disattivata.Modifica il tuo file my.cnf per dargli almeno qualche megabyte.Non sono necessarie modifiche PHP :)
Potrebbe essere completamente eccessivo per quello che stai tentando, ma dai un'occhiata eAcceleratore O memcache.Se hai query che cambieranno regolarmente e query che non cambieranno, potresti non volere che tutte le tue query db vengano memorizzate nella cache per lo stesso periodo di tempo da mysql.
I motori di memorizzazione nella cache come quelli sopra riportati ti consentono di decidere, query per query, per quanto tempo i dati devono essere memorizzati nella cache.Quindi supponiamo che tu abbia dati nell'intestazione che cambieranno raramente, puoi controllare se sono attualmente nella cache - in tal caso, restituiscili, altrimenti esegui la query e inseriscili nella cache con una durata di N, quindi per il prossimo N secondi ogni caricamento della pagina estrarrà i dati dalla cache senza avvicinarsi a MySQL.Sei quindi libero di estrarre gli altri tuoi dati "in tempo reale" dal db come e quando richiesto, bypassando la cache.
Consiglierei l'intero percorso di memorizzazione nella cache della pagina.Se alcuni dati cambiano, posiziona semplicemente token/segnaposto al posto dei dati dinamici.Memorizza nella cache l'intera pagina con questi token, quindi pubblica l'elaborazione dei token per i dati memorizzati nella cache per i token.Quindi ora hai una pagina memorizzata nella cache che contiene contenuto dinamico.