La caché de consultas MySQL captura una expresión de consulta de una consulta "SELECT " y el conjunto completo de los resultados y las coloca en una caché temporal en el disco o en la memoria . Cuando un script PHP emite una consulta idéntica a una que antes era gestionado y almacenado en caché , los resultados se sirven desde la caché en lugar de la base de datos . Esto puede reducir significativamente la cantidad de tiempo necesario para obtener los resultados , lo que mejora el rendimiento del programa PHP.
Limitaciones
La caché de consultas MySQL sólo funciona con " ; SELECT " consultas y sólo caché consultas completas, no subselecciones o vistas en línea. La caché de consultas en caché sentencias preparadas , pero no almacenar en caché las transacciones de bases de datos . No incluya comentarios al principio de las consultas en los estados de PHP. Si una condición de consulta no empieza con la letra " S ", MySQL determinará que no es una consulta "SELECT " y no almacenar en caché los resultados. Por ejemplo :
//No hacer esta consulta = $ ' /* $ name es miembro actual * /SELECT * FROM miembros WHERE nombre = $ nombre ' ;//Haced esto en vez $ query = " SELECT * FROM miembros WHERE nombre = $ nombre /* $ name es miembro actual * /' ; $ result = mysql_query ( $ consulta ) ;
Query caché Configuración
< p> para configurar la caché de consultas MySQL, editar el archivo de configuración de MySQL en el servidor web, por ejemplo, " /etc /mysql /my.cnf " en un servidor web Apache, y establecer el " query_cache_type " y la " consulta - cache -size "variables . Por " query_cache_type ", un valor de cero desactiva la caché; uno se convierte en la caché , y dos conjuntos de la caché que elegir un tamaño máximo de la caché de consultas , por lo general entre 20 y 100 "a la carta ". megabytes , y añada las siguientes líneas al final del archivo de configuración para activar la caché de consultas y ajuste el tamaño de 20 megabytes :
de tipo query cache = 1query -cache- size = 20M
Caching "On Demand"
Si desea controlar los resultados de la consulta se almacenan en caché de su script PHP , establezca el " tipo- caché de consultas " a " 2 " y pasar la palabra clave " SQL_CACHE " después de la instrucción "SELECT " en una consulta PHP. Por ejemplo :
$ query = "SELECT * FROM clientes SQL_CACHE DONDE cust_id =" 0089324 " ; $ result = mysql_query ( $ consulta ) ;
Si la caché de consultas está encendido y no desea almacenar en caché una consulta en particular , pasar la palabra clave " SQL_NO_CACHE " de PHP. Por ejemplo :
$ query = "SELECT * FROM clientes SQL_NO_CACHE DONDE cust_id =" 0089324 " ; $ result = mysql_query ( $ consulta ) ;