-1

在命令行上运行 Symfony 命令时,我正在使用带有 mysql 数据库的 Symfony2 框架和 Doctrine,例如 ...

/path/to/php app/console myCommand

此命令用于更新记录负载(大约 35,000+),并且我在 1Gb 时内存耗尽,是否有更好且可能更有效的方法来运行这些命令,所以我没有遇到这个问题?

我可以增加内存限制,但最终这会在某个时候再次失败。

提前致谢

4

2 回答 2

0

尝试使用批处理来分块处理更新。

http://docs.doctrine-project.org/en/2.1/reference/batch-processing.html

于 2012-12-14T23:03:39.697 回答
0

在实体管理器上调用 clear

$em = $this->getContainer()->get('doctrine')->getEntityManager();
$em->flush();
$em->clear();

因为您只是在更新数据,而不要求它保留在内存中。

于 2013-03-20T12:22:31.397 回答