sql >> Database >  >> RDS >> Mysql

Memcache - mysql-resultaten opslaan

U kunt het resultaatobject niet opslaan, nee, maar u kunt alle rijen in een array ophalen en die array opslaan. Of u uw code op andere plaatsen moet herstructureren, hangt af van hoe u uw code hebt geschreven en hoe goed u eerder toegang tot de database hebt geabstraheerd.

Als u bijvoorbeeld een functie als deze heeft:

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

Dan kun je Memcached caching binnen die functie toevoegen:

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

Als je overal het onbewerkte PDO- of MySQLi-object gebruikt, heb je meer werk te doen.



  1. Rijen toevoegen aan tabel met unieke kolom:Bestaande ID-waarden plus nieuw aangemaakte ophalen

  2. MariaDB JSON_TABLE() uitgelegd

  3. Hoe een MySQL-database te back-uppen / exporteren met PHP

  4. Dynamische SQL-resultaten in tijdelijke tabel in SQL Stored-procedure