我正在使用cakephp。在某些查询中,我使用了以下类型的查找:
$this->Photo->Behaviors->attach('Containable', array('autoFields' => true));
这是我在find中使用的Contain数组:
'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
如果我在一张照片上有300个喜欢,我将为User.Name创建另外300个查询。所以,我想缓存这种请求。我已经在我的服务器中正确安装了memcache,它正常工作。但我无法找到一种方法来缓存蛋糕使用可包含行为进行的查询。
有人有这个问题吗?
由于 -G。
答案 0 :(得分:0)
为什么不使用cakephp的counterCache功能呢?
在cakephp书中有很多关于缓存查询的文档,不仅仅是在我的缓存中,还有许多其他方法。查看CakeCache类。
答案 1 :(得分:0)
这个主题有很多方法。 如果只是关于belongsTo关系,它归结为使用bindModel()手动连接表。
这是一个很好的行为:http://planetcakephp.org/aggregator/items/891-linkable-behavior-taking-it-easy-in-your-db
它会照顾好自己。