【发布时间】:2014-04-14 15:24:24
【问题描述】:
我正在使用 Doctrine2 and Zf2 ,现在当我需要获取 count 的行时,我有以下两种方法来获取它。但我担心的是哪种方式会更优化和更快,因为将来行数将超过 50k。任何建议或任何其他方法来获取计数?有没有可以和findBy一起使用的函数来获取计数???
或者我应该使用普通的 Zf2 数据库库来获取计数。我刚刚发现当数据很大时,ORM 不适合获取结果。请任何帮助将不胜感激
$members = $this->getEntityManager()->getRepository('User\Entity\Members')->findBy(array('id' => $id, 'status' => '1'));
$membersCnt = sizeof($members);
或
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('count(p)')
->from('User\Entity\Members', 'p')
->where('p.id = '.$id)
->andWhere('p.status = 1');
$membersCnt = $qb->getQuery()->getSingleScalarResult();
【问题讨论】:
标签: orm doctrine-orm zend-framework2 doctrine doctrine-query