【发布时间】:2014-02-28 11:41:49
【问题描述】:
我目前解析一个 CSV 文件以将数据插入数据库,但问题是因为它有 20 000 行,所以需要很长时间。有没有办法使用 Laravel 迁移一次插入更多行?
这就是我现在正在做的事情:
foreach ($towns as $town) {
DB::table('town')->insert(
array(
// data goes here
)
);
}
我想我的问题可能有点含糊。我想知道使用一个查询批量插入多个项目的格式是什么,这是否真的会影响速度?
【问题讨论】:
-
我也遇到过这个问题,但是如果你将 $towns 数组/对象分成更小的部分,我认为它会起作用。使每个数组最多包含 5000 个条目
-
PHPExcel 包在您需要保存电子表格格式数据或创建电子表格时非常有用,但我会避免在这里使用它,因为它非常占用内存并且只会让 OP 的问题变得更糟。
-
插入时,您可以传入一个未索引的数组数组,而不是为每个表格行传入一个数据数组,这比一次传入一行要快一些。