sql >> データベース >  >> RDS >> Mysql

Memcache-mysqlの結果を保存する

    結果オブジェクトを格納することはできませんが、すべての行を配列にフェッチしてその配列を格納することはできます。他の場所でコードのリファクタリングが必要かどうかは、コードをどのように記述したか、および以前にデータベースアクセスをどれだけうまく抽象化したかによって異なります。

    たとえば、次のような関数がある場合:

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

    次に、その関数内に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;
    }
    

    生のPDOまたはMySQLiオブジェクトをどこでも使用する場合は、さらに多くの作業が必要になります。



    1. UTF-8文字エンコードの戦いjson_encode()

    2. 行は明確に数えられません

    3. 同じ値を含む行の数を数える

    4. VBA錬金術:メソッドをプロパティに変える