我有一个包含 csv 文件中的 3000000 个项目的数组。
现在我可以像这样将其导入数据库。
这是最快、最好的方法吗?
或者有更好的解决方案吗?
$items = [
0 => array(
'id' = 1,
'x_id' = 2,
'y_id' = 3,
'date' = '2018-02-20',
),
1 => array(
'id' = 1,
'x_id' = 2,
'y_id' = 3,
'date' = '2018-02-20',
),
etc etc
];
DB::table('items')->insert($items);
最佳答案
Laravel chunk 将在集合上工作,因此将您的项目数组更改为集合:
$items = collect($items);
充分考虑你的选择
$chunks = $items->chunk(100);
然后进行foreach,每次插入100
foreach($chunks as $chunk){
DB::table('items')->insert($chunk->toArray());
}
关于Laravel 5批量导入3000000条记录/项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48882509/