2014-10-01 70 views
0

我看到我的查詢會減慢,案件是,該原則正在做超過6000個查詢來完成這個,我怎麼能解決它?在單個查詢中做什麼?doctrine2慢太多querys

$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(); 
+0

請說明一下,您運行該查詢超過6000次? – 2014-10-02 06:25:17

+0

只有一次,並且學說向服務器發出了6000個請求... – user2118788 2014-10-02 06:40:08

+0

問題是我認爲加入或類似的東西,因爲我猜測它的工作原理是這樣的:「首先選擇所有你,而不是每個你選擇u.ratings」 – user2118788 2014-10-02 06:46:18

回答

0

確定發現的bug .. 'r.user=:user'用戶實體,並延遲加載每一次,所以我需要leftjoin用戶過多,並通過ID檢查。