У меня есть отношение MN между таблицей USER и CATEGORY. Проблема возникает, когда пользователь имеет более 100 интересов. Когда я выполняю очень простой запрос, как это:Оптимизация доктрины Symfony
return $this->createQueryBuilder('usercategory')
->innerJoin('usercategory.user', 'u')
->innerJoin('usercategory.category', 'c')
->where('u.id = :user_id')
->setParameter('user_id', $user_id)
->getQuery()
->getResult();
Symfony профайлер сообщил, что более 100 запросов выполняются с более чем 150мс времени для выполнения. 90% этих запросов похожи
SELECT t0.category_name AS category_name1,t0.type AS type2, t0.status AS status3, t0.category_id AS category_id4, t0.parent_id AS parent_id5 FROM categories t0 WHERE t0.category_id = ?
Это среднее, если пользователь имеет 100 категорий, доктрина будет выполнять 100 запрос для извлечения всех.
Я делаю что-то неправильно и как могу использовать это быстрее, используя DQL?
ТНХ, Милош
-> addSelect ('c') приведет к тому, что категории будут возвращены из вашего запроса (в отличие от ленивой загрузки их). – Cerad
Да, все. СПАСИБО!!! – Milos
@Cerad Пожалуйста, сделайте свой комментарий как ответ, чтобы я мог его принять. THX снова! – Milos