使用Laravel迁移一次插入大量数据?

时间:2014-02-28 11:41:49

标签: laravel migration

我目前正在解析CSV文件以将数据插入数据库,但问题是因为它是20 000行,所以需要很长时间。有没有办法使用Laravel迁移一次插入更多行?

这就是我现在正在做的事情:

foreach ($towns as $town) {
   DB::table('town')->insert(
      array(
         // data goes here
      )
   );
}

我想也许我的问题有点模糊。我想知道使用一个查询批量插入多个项目的格式是什么,如果这实际上会对速度产生影响?

1 个答案:

答案 0 :(得分:1)

您可以通过使用数据填充数组来进行批量插入:

foreach ($towns as $town) {
   $array[] = array(... your data goes here...);
}

然后只运行一次

DB::table('town')->insert($array);

但我真的不知道它会多快多少。您还可以禁用查询日志:

DB::disableQueryLog();

它使用更少的内存,通常更快。