【问题标题】:doctrine2 slow too much querys学说2减慢了太多的查询
【发布时间】:2014-10-02 15:23:34
【问题描述】:

我看到我的查询会变慢,情况是,那个学说正在做超过 6000 个查询来完成这个,我该如何解决?在单个查询中做什么?

    $qb = $this->createQueryBuilder('u');
    $qb->leftJoin('u.ratings','r','WITH','r.user=:user');
    $qb->where('r.id is NULL and u.deleted !=1 and u.type != 5 and u.user!=:user')
    ->setParameter('user',$user);

    return $qb->getQuery()
          ->getResult();

【问题讨论】:

  • 请澄清,您运行该查询超过 6000 次?
  • 只有一次,并且学说向服务器发出 6000 个请求...
  • 问题是我认为加入或类似的事情,因为我猜它的工作原理是这样的“首先选择所有你,而不是为每个你选择 u.ratings”

标签: php performance doctrine-orm


【解决方案1】:

好的,发现了错误。'r.user=:user' 用户是实体,每次它都会延迟加载,所以我也需要离开用户并通过 id 检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多