sql >> Database teknologi >  >> RDS >> Mysql

Memcache - lagring af mysql-resultater

Du kan ikke gemme resultatobjektet, nej, men du kan hente alle rækker ind i et array og gemme det array. Om du har brug for refaktorisering af din kode andre steder afhænger af, hvordan du har skrevet din kode, og hvor godt du har abstraheret databaseadgang tidligere.

For eksempel, hvis du har en funktion som denne:

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

Så kan du tilføje Memcached caching i denne funktion:

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;
}

Hvis du bruger det rå PDO eller MySQLi-objekt overalt, så har du mere arbejde at gøre.



  1. Lær grundlæggende SQL-forespørgsler ved hjælp af MySQL

  2. Hvor mange kolonner i databasetabel er for mange?

  3. MySQL - Gør et værdipar unikt

  4. Oracle PL/SQL - samlinger (indlejrede tabeller)