Symfony1 如何提高symfony管理生成器页面的性能?
我有一个symfony管理生成器页面,其中每一行都会进行几个函数调用,因此会多次访问数据库 我向Symfony1 如何提高symfony管理生成器页面的性能?,symfony1,symfony-1.4,Symfony1,Symfony 1.4,我有一个symfony管理生成器页面,其中每一行都会进行几个函数调用,因此会多次访问数据库 我向table_method添加了一个查询,并使用了一些联接,但它并没有减少在我的页面上执行的查询数量 一个人应该怎么做才能提高这里的性能?链接到“table\u method”的查询必须包含所有显示的字段,否则您可能会忽略某些kisa字段,或者您的查询没有添加与样本相关的字段 Symfony根据手册所做的减少查询数量如下: # apps/backend/modules/job/config/g
table_method
添加了一个查询,并使用了一些联接,但它并没有减少在我的页面上执行的查询数量
一个人应该怎么做才能提高这里的性能?链接到“table\u method”的查询必须包含所有显示的字段,否则您可能会忽略某些kisa字段,或者您的查询没有添加与样本相关的字段
Symfony根据手册所做的减少查询数量如下:
# apps/backend/modules/job/config/generator.yml
config:
list:
table_method: retrieveBackendJobList
您可以禁用外键上的某些筛选器,它们有自己的特定请求,而不是基于表方法。原则:如果您在
table\u方法
查询中使用select()
方法,您确定您在这里选择了任何连接的表以及使用egleftJoin()吗
?如果您要加入到表中,并且仍然看到其他查询,那么您没有选择某些值。缩小触发查询的调用范围,并确保选择了这些值。或者,您可能在模型类中的某个位置有手动dql调用。如果可能,发布您的table_方法代码。性能的提高令人惊讶!(没有什么比正确阅读文档更好的了!)我选择了这个作为最佳答案,尽管我应该注意到我还没有尝试过这里的建议。这个问题最终成为一个非优先事项。
// lib/model/doctrine/JobeetJobTable.class.php
class JobeetJobTable extends Doctrine_Table
{
public function retrieveBackendJobList(Doctrine_Query $q)
{
$rootAlias = $q->getRootAlias();
$q->leftJoin($rootAlias . '.JobeetCategory c');
return $q;
}
// ...