Слишком много запросов в производственной среде - PullRequest
0 голосов
/ 08 декабря 2018

В среде разработчиков есть 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 голосов
/ 08 декабря 2018

Решено - основная причина была 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 (dev) и 101 (prod via apcu).Возможно, это была какая-то проблема на стороне сервера с модулем.

...