我在用户表和类别表之间建立了MN关系。当用户拥有超过100个兴趣时,问题就出现了。当我执行像这样非常简单的查询时:
Symfony分析器报告称,执行了100多个查询,执行时间超过150毫秒。其中90%的查询看起来像是:
这意味着,如果用户有100个类别,Doctrine将执行100个查询来获取它们所有的内容。
我做错了什么,我如何使用DQL使其更快?
谢谢, MIlos
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个类别,Doctrine将执行100个查询来获取它们所有的内容。
我做错了什么,我如何使用DQL使其更快?
谢谢, MIlos