sql >> Databáze >  >> RDS >> Mysql

Memcache - ukládání výsledků mysql

Nemůžete uložit výsledný objekt, ne, ale můžete načíst všechny řádky do pole a toto pole uložit. Pokud potřebujete refaktorovat svůj kód na jiných místech, záleží na tom, jak jste kód napsali a jak dobře jste dříve abstrahovali přístup k databázi.

Pokud máte například funkci jako je tato:

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

Poté můžete do této funkce přidat ukládání do mezipaměti Memcached:

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

Pokud všude používáte nezpracovaný objekt PDO nebo MySQLi, pak máte více práce.



  1. PHP PDOException:SQLSTATE[HY093]:Neplatné číslo parametru

  2. Jak odstranit omezení Not Null v MySQL

  3. Získejte ID řádku tabulky SQLite FTS3

  4. pořadí dotazů spojení mysql podle dvou sloupců