0

在 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 次而是 1 次。

也许你们中的一些专家对我有一个提示,如何避免讨厌的重复 sql 查询

4

1 回答 1

2

我已经有一段时间没有使用 Symfony 了,但是如果你的菜单在 99% 的时间里都是一样的,为什么不把它放到配置文件而不是数据库中呢(我发现 xml/yml 树结构很好用,快速)?

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

此外,对于 Doctrine Result Caching,我找到了本手册(对应于您的 symfony 版本):Advanced Doctrine Usage

于 2013-03-30T12:35:24.450 回答