php - soporta - Caché de consultas MySQL
optimizar consultas lentas mysql (5)
¿Existe una forma simple de almacenar en caché las MySQL queries
en PHP
o, en su defecto, hay un pequeño conjunto de clases que alguien haya escrito y puesto a disposición que lo haga? Puedo almacenar en caché toda una página, pero eso no funcionará ya que algunos datos cambian pero otros no, quiero almacenar en caché la parte que no lo hace.
Esta es una excelente descripción general de cómo almacenar en caché las consultas en MySQL:
Creo que el tamaño del caché de consultas es 0 por defecto, que está desactivado. Edite su archivo my.cnf para obtener al menos unos megabytes. No es necesario cambiar PHP :)
Puede ser una exageración completa para lo que está intentando, pero eche un vistazo a eAccelerator o Memcache . Si tiene consultas que cambiarán regularmente y consultas que no, es posible que no desee que mysql almacene en caché todas sus consultas de db por el mismo período de tiempo.
Los motores de almacenamiento en caché como el anterior le permiten decidir, en una consulta por consulta, cuánto tiempo deben almacenarse los datos en caché. Por ejemplo, si tiene datos en el encabezado que cambian con poca frecuencia, puede verificar si se encuentran actualmente en la memoria caché; de ser así, devuélvalos; de lo contrario, haga la consulta y colóquela en la memoria caché con una vida útil de N, para el siguiente N segundos cada carga de página extraerá los datos de la memoria caché sin acercarse a MySQL. Entonces puede extraer sus otros datos "en vivo" de la base de datos cuando sea necesario, pasando por alto la memoria caché.
Puede usar Zend Cache para almacenar en caché los resultados de sus consultas, entre otras cosas.
Yo recomendaría toda la ruta de almacenamiento en caché de la página. Si algunos de los datos cambian, simplemente coloque tokens / placeholders en lugar de los datos dinámicos. Guarde en caché toda la página con esos tokens en su lugar, y luego procese los tokens para los datos en caché de los tokens. Por lo tanto, ahora tiene una página en caché que contiene contenido dinámico.