在开发环境中,有16个数据库查询(在我的存储库中使用准则2.6和仅dql查询)。在生产中,完全相同的页面以某种方式显示了101个查询-因为查询了所有关系,即使大多数关系都没有使用。我尝试了不同的获取模式,例如EAGER,但没有任何改变。
这是一个示例注释,该注释会被查询但从未在页面上使用:
/**
* @var Doctrine\Common\Collections\Collection
*
* @Assert\Valid(traverse=true)
* @ORM\OneToMany(targetEntity="Translation", mappedBy="origin", cascade={"persist", "remove"}, orphanRemoval=true, fetch="EAGER")
* @ORM\OrderBy({"locale"="ASC"})
*/
private $translations;
可能是某种配置错误?
答案 0 :(得分:0)
解决了–根本原因是apcu。当我从以下位置切换时:
doctrine:
orm:
metadata_cache_driver: apcu
query_cache_driver: apcu
result_cache_driver: apcu
到
doctrine:
orm:
metadata_cache_driver: apc
query_cache_driver: apc
result_cache_driver: apc
我减少到9个请求,而不是16个(开发)和101个请求(通过apcu生产)。也许是模块的服务器端问题。