2008-08-31 14 views
9

¿Hay una manera simple de almacenar en caché 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.Caché de consultas MySQL

Respuesta

1

creo que el tamaño de la caché de consultas es de 0 por defecto, el cual está apagado. Edite su archivo my.cnf para obtener al menos unos megabytes. No son necesarios los cambios de PHP :)

+0

Como instalo mysql en muchos servidores Ubuntu/Debian y compruebo que sean configuraciones, el almacenamiento en caché se activa por defecto. 'query_cache_limit = 1M' y' query_cache_size = 16M ' – shgnInc

1

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 caché como los anteriores le permiten decidir, en una consulta por consulta, durante 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. Ahora puede extraer sus otros datos "en vivo" de la base de datos cuando sea necesario, omitiendo la caché.

4

Puede usar Zend Cache para almacenar en caché los resultados de sus consultas, entre otras cosas.

0

Recomendaría la ruta de almacenamiento en caché de toda 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, luego publique 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.

Cuestiones relacionadas