所以我一直在Eloquent尝试laravel的分块,但我遇到了一个问题.请考虑以下代码(我的问题的更简化版本):
$data = DB::connection('mydb')->table('bigdata')
->chunk(200, function($data) {
echo memory_get_usage();
foreach($data as $d) {
Model::create(
array(
'foo' => $d->bar,
...
//etc
));
}
}
因此,当我运行以下代码时,我的内存输出如下所示:
19039816
21490096
23898816
26267640
28670432
31038840
所以没有跳进php.ini并更改memory_limit值任何线索为什么它不工作?根据文档:“如果你需要处理很多(数千)Eloquent记录,使用chunk命令将允许你不用吃掉你所有的RAM”.
我在foreach函数之后尝试取消设置($data),但它没有帮助.关于我如何利用大块的任何线索或我是否误解了它的作用?