Mysql
 sql >> Base de données >  >> RDS >> Mysql

Memcache - stockage des résultats mysql

Vous ne pouvez pas stocker l'objet résultat, non, mais vous pouvez récupérer toutes les lignes dans un tableau et stocker ce tableau. Si vous avez besoin d'une refactorisation de votre code à d'autres endroits, cela dépend de la façon dont vous avez écrit votre code et de la façon dont vous avez abstrait l'accès à la base de données auparavant.

Par exemple, si vous avez une fonction comme celle-ci :

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

Ensuite, vous pouvez ajouter la mise en cache Memcached dans cette fonction :

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 vous utilisez l'objet brut PDO ou MySQLi partout, vous avez plus de travail à faire.