使用Laravel的Chunk方法将许多记录插入数据库会随着时间的推移而变慢

时间:2018-06-06 19:29:18

标签: php mysql laravel chunking

所以基本上我试图将数据导入到我的数据库中的大约15个不同的表中。我正在从源数据库中分块数据,并在该函数回调中使用原始SQL将其插入到我的数据库中。代码示例:

foreach($tables as $table) {    
     DB::connection('source_db')->table($table)->select($fields)->orderBy('id'))->chunk(2500, function($records) use($table) {
          $this->runInsertQuery($records, $table);
     });
}

总共有大约200万条记录,似乎它开始时非常快,但随着它从一个桌子移动到另一个桌面而变得越来越慢,需要几个小时才能完成。根据Laravel的文档,我的印象是,分块会使插入运行得更快,但它似乎产生了相反的效果。任何指导将不胜感激!

0 个答案:

没有答案