CakePHP 3.x Transacction - 没有足够的RAM

时间:2015-10-14 13:39:05

标签: php cakephp cakephp-3.0

我正在保存大量数据(模型中有很多模型嵌套了不同类型的关联)。我从外部Web服务获取此数据,在Marshall之后,我尝试使用事务进行保存:

$this->connection()->transactional(function () use ($entities) {
    foreach ($entities as $entity) {
        $this->save($entity);
    }
});

我目前遇到的问题是我的php进程内存不足。我的php.ini配置了128M。

是否可以在不使用事务的情况下减少保存实体的数据负载?

谢谢。

1 个答案:

答案 0 :(得分:0)

即使你已经循环:

foreach ($entities as $entity) {
        $this->save($entity);
}

$ entity可能仍然包含大量信息,因此填补了内存问题。您可能会回显或使用var_dump并查看是否可以让$ entity进一步分解并在当前foreach中包含嵌套循环。