生产环境中的查询过多

时间:2018-12-08 08:12:21

标签: doctrine-orm doctrine

在开发环境中,有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;

可能是某种配置错误?

1 个答案:

答案 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生产)。也许是模块的服务器端问题。