sql >> Base de Datos >  >> RDS >> Mysql

Memcache:almacenamiento de resultados de mysql

No puede almacenar el objeto de resultado, no, pero puede obtener todas las filas en una matriz y almacenar esa matriz. Si necesita refactorizar su código en otros lugares, depende de cómo haya escrito su código y qué tan bien haya abstraído el acceso a la base de datos anteriormente.

Por ejemplo, si tiene una función como esta:

function database_result($query) {
   ...
   $result_array = $result->fetchAll();
   return $result_array;
}

Luego puede agregar el almacenamiento en caché de Memcached dentro de esa función:

function database_result($query, $expire = 60) {
   $memcached_key = 'db:' . $query;
   $cached = $memcached->get($memcached_key);
   if ($memcached->getResultCode() !== Memcached::RES_NOTFOUND) {
       return $cached;
   }
   ...
   $result_array = $result->fetchAll();
   $memcached->set($memcached_key, $result_array, $expire);
   return $result_array;
}

Si usa el objeto PDO o MySQLi sin procesar en todas partes, entonces tiene más trabajo por hacer.