我试图用CakePHP 2.1的方法saveMany()
保存超过10000条记录的列表。但它给了我一个500错误,或者一个“内存耗尽”的致命错误。使用CakePHP的saveMany保存> 10000条记录()
如果我在处理完整个数组后调试整个数组(所以,没有调用save方法),时间小于0.05s。但是,当我添加保存方法($this->saveMany($save, array('validate' => false));
)时,它会显示我上面的错误之一。
我提到我在MySQL和PHP中使用InnoDB作为我的存储引擎作为脚本语言。
我在做什么错,我该如何解决这个问题?
编辑
我回来这个问题,因为我“解决”为什么那庞大的记录数不保存。原因是......好,甚至没有一条记录被保存。我测试过只保存生成数组中的第一个元素,这就是它发生的情况:它会增加内存直到极限,然后死亡。我把它放在2GB内存的本地主机上,它仍然给我超过内存的错误。这很奇怪,我不明白为什么会发生这种情况。在另一个模型上应用的相同代码按预期工作。我重新创建了模型和它的表格,但没有成功。我能想到的唯一原因是表名的长度,但对我来说没有意义。为了保存单个记录,什么会产生这种内存增加?
你需要多久做一次? 10000条记录来自哪里?您需要提供更多信息,以便人们可以建议其他方法。 – Henri 2012-03-04 14:39:27
我正在为我的应用程序构建一个缓存,以便每当我需要检索并计算一些数据时,我只需从这些10000中获取几条记录。我只需手动执行几次。所以脚本的唯一要求是实际工作。 – linkyndy 2012-03-04 14:43:31
更新了我的答案。你有没有访问MySQL控制台? – Henri 2012-03-04 15:04:11