Cachear resultados de consultas

Hola,

he estado mirando la documentación pero no me aclara nada el asunto…

¿Se pueden cachear los resultados de las consultas para no tener que ir a la BD cuando se vuelvan a realizar las mismas consultas? ¿Y cuando se realice un update, delete o insert se traiga de nuevo los datos actualizados? Todo esto de forma automática.

De esta manera las aplicaciones solo van a ir a la BD la primera vez de cada select, siempre y cuando no se haga un update/delete/insert que en ese caso se tendría que actualizar la caché, y así el rendimiento de las aplicaciones sería mucho mayor.

Es decir, como el Oracle Coherence.

Saludos.

Creo que de lo que hablas es de usar el cache con CDbCacheDependency http://www.yiiframework.com/doc/guide/1.1/en/caching.fragment

saludos

Antonio, a ver si lo miro.

¿Tú lo has usado para cachear consultas y no volver a hacerlas? Lo digo por tener un ejemplo de buen uso.

Es que lo que yo ando buscando es poner una capa intermedia que sea la que automaticamente te caché los resultados de las consultas y no vaya a recargar la caché de las consultas a no ser que se haga un update/delete/create de las tablas asociadas a la consulta.

Saludos.

Sagitta,

Lo que intentas hacer lo hace la dependencia del cache. La dependencia del caché es la que hace que si varía cualquiera de los valores especificados en la dependencia, la consulta se vuelva hacer y ésta se cargue en el caché. En el caso contrario, se mostrarían los datos guardados en caché. Hay diferentes variaciones de dependencia, como podrás observar aquí: http://www.yiiframework.com/doc/api/1.1/#system.caching.dependencies

Gracias…

lo dicho le echaré un vistazo y haré pruebas que es una buena práctica para las aplicaciones.

Saludos.