Cache de Sentencias Sql, Incrementar Desempeño de Magento
A veces tenemos objetos complejos, heredando toda la lógica y pensamiento de nuestros módulos. Y resultan sumamente útiles cuando los invocamos detro de los métodos de nuestros modelos o en la lógica estructurada de negocios en los controladores.
«Simplicidad «es la palabra, en el planeta de la carga pesada, en un universo orientado al desempeño. Debido a esto es que algunas veces en vez de cargar objetos complejos es mejor utilizar métodos simples en los modelos, dentro de estos podemos utilizar sentencias sql simples u optimizadas y según sea el caso podríamos cacharlas para reducir la carga de la base de datos y aumentar el desempeño.
Los objetos «block» de Magento ya heredan métodos para ser cachados.En todo caso podemos crear llaves de cache en donde lo consideremos útil, de este modo podríamos tomar ventaja del motor de cache que tengamos configurado en nuestro backend ya sea basado en archivos o memcached.
class Company_Module_Model_Model extends Mage_Core_Model_Abstract{
public function optimizedCachedExampleMethod($param){
$cacheKey = «key_».$param;
$cacheTags = array($cacheKey);
$result = Mage::app()->loadCache($cacheKey);
if(empty($result)){
$sql = «SELECT optimized sql …»;
$result = Mage::getSingleton(‘core/resource’)->getConnection(‘core_read’)->fetchAll($sql);
Mage::app()->saveCache(serialize($result), $cacheKey,$cacheTags,null);
return $result;
}else{
return unserialize($result);
}
}
}
Aqui esta la version original en ingles http://rgarro.blogspot.com/2010/08/cache-query-result-boost-magento.html