Doctrine 2查询缓存

时间:2014-11-13 20:17:53

标签: doctrine-orm

我在Doctrine 2中的缓存文件夹中填满了数千个文件夹,这些文件夹似乎包含已执行的所有教条操作的已翻译SQL查询。在代码中,我的DQL查询没有明确的缓存命令。几乎所有DQL都包含一些基于用户操作的变量部分,主要是WHERE子句中的一些过滤。我喜欢缓存翻译过程的概念,但似乎查询是作为一个整体处理的,因为许多查询都是唯一的,因此缓存毫无意义。

因为我对Doctrine很新,所以必须有一些我不知道的东西。有人可以给我一些关于如何使查询缓存正常工作的指示吗?

另外,Doctrine命令行中的clear-cache不会删除这些文件夹,我手动删除它们,这意味着什么?

谢谢,迈克

1 个答案:

答案 0 :(得分:0)

参数值不会影响Doctrine的查询缓存。只会为:

创建一个缓存条目
$query = $em->createQuery('SELECT u FROM MyBundle\Entity\User u WHERE u.id = :id');

无论你用不同的值来称呼它多少次:

$query->setParameters('id' => 1)->getResult();
$query->setParameters('id' => 2)->getResult();
<...>

因此,这不是查询缓存,或者您没有使用parameters binding