2012-02-29 3 views
0

私はcakephpを使用しています。一部のクエリでは、私は、findのこれらの種類を使用します。CakePhpにはモデルキャッシュが含まれています

$this->Photo->Behaviors->attach('Containable', array('autoFields' => true)); 

これは私が見つけるに使う配列が含まれています。

'contain'=>array(
    'User'=>array('fields'=>array('User.Name','User.Username')), 
    'Like' => array('User'=>array('fields'=>'Name'), 
        'order'=>'Timestamp DESC' 
       )), 
'recursive' => 2, 

問題は毎回、私は言っていたユーザーの名前をしたいということです写真。 Cakephpはこのクエリを実行します。

For example: SELECT `User`.`Name` FROM `Users` AS `User` WHERE `User`.`id` = 2175 

私は1つの写真に300の好きなものがある場合、私はUser.Nameのための別の300のクエリを作成します。だから、私はこの種の要求をキャッシュしたいと思います。私はmemcacheをサーバに正しくインストールしました。正常に動作しています。しかし、私は、ケーキを作ることができるコンテクストを持つクエリをキャッシュする方法を見つけることができません。

この問題はありますか?

おかげ G.

答えて

0

なぜ代わりに、CakePHPのcounterCache機能を使わないのでしょうか?

cakephpの書籍には、私のキャッシュだけでなく他の多くの方法でクエリをキャッシュすることについての多くのドキュメントがあります。 CakeCacheクラスをチェックしてください。

0

このトピックではいくつかのアプローチがあります。 これは、単にbelongsTo関係の場合、bindModel()を使用して手動でテーブルを結合することになります。ここ

は良い行動である:http://planetcakephp.org/aggregator/items/891-linkable-behavior-taking-it-easy-in-your-db

それは自分自身の世話をします。

+0

良い動作..しかし、私の場合は問題があります。私のテーブルは本当に速く成長しており、参加は本当に重いです。 – Giacom0

+0

次にScott Harwellのアプローチを使用します。http://book.cakephp.org/2.0/ja/models/associations-linking-models-together.html#countercache-cache-your-count – mark

関連する問題