Cache PHP MySQL Query Risultati

May 19

Cominciando con MySQL versione a quattro, non è più necessario scrivere codice PHP personalizzato per mettere in cache i risultati delle query MySQL. MySQL contiene una cache delle query integrato che memorizza nella cache dei risultati per identici dichiarazioni "Select", comprese le dichiarazioni preparate. Per utilizzare la cache, modificare il file di configurazione e accenderlo. Una volta abilitato, tuttavia, si ha la possibilità di ignorare se una query viene memorizzato nella cache facendo passare una parola chiave nella query si invia da PHP a MySQL. Rivedere i limiti della cache delle query per essere sicuri di capire come funziona la cache prima di scrivere uno script PHP con la cache delle query in mente.

MySQL Query Cache

La cache delle query MySQL coglie un'espressione di query da una query "SELECT" e l'insieme completo dei risultati e li colloca in una cache temporanea su disco o nella memoria. Quando uno script PHP emette una query identico a quello che è stato eseguito in precedenza e memorizzati nella cache, i risultati sono serviti dalla cache piuttosto che il database. Questo può ridurre significativamente la quantità di tempo necessario per fornire i risultati, che migliora le prestazioni del programma PHP.

limitazioni

La cache delle query MySQL funziona solo con le query "select" e la volontà di query solo di cache piena, non subselect o viste in linea. La cache delle query nella cache istruzioni preparate ma non memorizza nella cache le transazioni di database. Non includere commenti all'inizio di query in dichiarazioni PHP. Se una condizione di query non inizia con la lettera "S", MySQL determinerà non è una query "SELECT" e non cache i risultati. Per esempio:

// Non fare questo
$ query = '/ $ nome è membro corrente / selezionare da membri WHERE name = $ name';
// Fare questo posto
$ query = 'SELECT da parte dei membri WHERE name = $ name / $ nome è attuale membro /';
$ Risultato = mysql_query ($ query);

Impostazione Query Cache

Per configurare la cache delle query MySQL, modificare il file di configurazione di MySQL sul server web, ad esempio "/etc/mysql/my.cnf" su un server web Apache, e impostare il "query_cache_type" e la "domanda-cache-size" variabili. Per "query_cache_type", un valore pari a zero disattiva la cache; ci si rivolge sulla cache; e due set la cache per essere "on demand". Scegliere una dimensione massima per la cache delle query, in genere tra 20 e 100 megabyte, e aggiungere le seguenti righe alla fine del file di configurazione di trasformare la cache delle query e impostare la dimensione di 20 megabyte:

query cache-type = 1
query cache-size = 20M

Caching "On Demand"

Se si desidera controllare che i risultati delle query vengono memorizzati nella cache dal vostro script PHP, impostare la "domanda-cache-tipo" a "2" e passa la parola chiave "SQL_CACHE" dopo l'istruzione "SELECT" in una query PHP. Per esempio:

$ Query = "SELECT * FROM SQL_CACHE clienti WHERE cust_id =" 0.089.324 ";
$ Risultato = mysql_query ($ query);

Se la cache delle query è acceso e non si vuole mettere in cache una determinata query, passare la parola chiave "SQL_NO_CACHE" da PHP. Per esempio:

$ Query = "SELECT * FROM SQL_NO_CACHE clienti WHERE cust_id =" 0.089.324 ";
$ Risultato = mysql_query ($ query);