我正在运行以下脚本来从我的数据库中选择用户列表并将其传递给我的服务。
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
-> select('s')
-> from('AppBundle\Entity\SubscriberDetails', 's')
-> where($qb->expr()->not($qb->expr()->exists($qb1->getDQL())))
-> setMaxResults($numcampaigns)
;
$subscribers = $qb->getQuery()->getResult();
WHERE
$qb1 = $this->getEntityManager()->createQueryBuilder();
$qb1
->select('send')
->from('AppBundle\Entity\Subscribers', 'send')
->where('DATE_FORMAT(now(), \'%e-%b-%Y\') - DATE_FORMAT(FROM_UNIXTIME(send.last_campaign), \'%e-%b-%Y\') <=360')
->andwhere('send.bounced <> 1')
->andwhere('send.complaint <> 1')
->andwhere('s.emailaddress = send.emailaddress');
以下脚本适用于3万个用户,而我正试图将其扩展到30万个用户的选择。在运行30万个用户时,我会遇到以下错误:
6.0662 132446208 15. Doctrine\ORM\Internal\Hydration\ObjectHydrator->hydrateRowData()/Applications/MAMP/htdocs/mediaff/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php:165
6.0663 132448496 16. Doctrine\ORM\Internal\Hydration\ObjectHydrator->getEntity()/Applications/MAMP/htdocs/mediaff/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php:494
6.0663 132448496 17. Doctrine\ORM\UnitOfWork->createEntity() /Applications/MAMP/htdocs/mediaff/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php:273
6.0663 132449488 18. ReflectionProperty->setValue() /Applications/MAMP/htdocs/mediaff/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:2586
6.0781 132445688 19. Symfony\Component\Debug\ErrorHandler::handleFatalError()/Applications/MAMP/htdocs/mediaff/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php:0
6.0782 132434104 20. spl_autoload_call() /Applications/MAMP/htdocs/mediaff/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php:613
6.0782 132434264 21. Symfony\Component\Debug\DebugClassLoader->loadClass()/Applications/MAMP/htdocs/mediaff/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php:613
我认为第二列是内存使用情况。你有什么想法,如何解决这个问题?非常感谢您的帮助。