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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top