在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查询
答案 0 :(得分:2)
我已经有一段时间没有使用过Symfony,但是如果你的菜单在99%的时间内非常相同,为什么不将它放入配置文件而不是数据库(我发现xml / yml树结构相当不错有了这个,快点)?
或者,如果您的表不是那么大,请将其保存到全局变量中,并在每次调用配置时重复使用它?
另外,对于Doctrine Result Caching,我发现了这本手册(对应于您的symfony版本):Advanced Doctrine Usage