如何缓存学说查询?

时间:2013-03-30 12:16:47

标签: php caching symfony-1.4

在Web调试工具栏中,我看到了我的index.php的109个SQL查询。

一次使用40次查询:

Doctrine::getTable('Configuration')->getConfiguration();

这是因为许多组件和行动:

public function executeImpress(sfWebRequest $request) {
   Doctrine::getTable('Configuration')->getConfiguration();
}

public function executeRightMenu() {
    Doctrine::getTable('Configuration')->getConfiguration();
}

public function executeLeftMenu() {
    Doctrine::getTable('Configuration')->getConfiguration();
}

...

我希望我可以在请求级别缓存此调用,以便此查询不会被触发40次而是一次。

也许你的某位专家对我有一个暗示如何避免那些讨厌的修复SQL查询

1 个答案:

答案 0 :(得分:2)

我已经有一段时间没有使用过Symfony,但是如果你的菜单在99%的时间内非常相同,为什么不将它放入配置文件而不是数据库(我发现xml / yml树结构相当不错有了这个,快点)?

或者,如果您的表不是那么大,请将其保存到全局变量中,并在每次调用配置时重复使用它?

另外,对于Doctrine Result Caching,我发现了这本手册(对应于您的symfony版本):Advanced Doctrine Usage