当在命令行上运行Symfony命令时,我正在使用带有Doctrine的Symfony2 Framework,例如......
/path/to/php app/console myCommand
这个命令是为了更新大量的记录(大约35,000+),并且我在1Gb时内存耗尽,是否有更好的,可能更有效的方法来运行这些命令,所以我不会遇到这个问题?
我可以增加内存限制,但最终会在某些时候再次失败。
提前致谢
答案 0 :(得分:0)
尝试使用批处理以块的形式处理更新。
http://docs.doctrine-project.org/en/2.1/reference/batch-processing.html
答案 1 :(得分:0)
在实体管理器上调用清除
$em = $this->getContainer()->get('doctrine')->getEntityManager();
$em->flush();
$em->clear();
由于您只是更新数据,而不是要求它保留在内存中。