Вставка многих записей в базу данных с помощью метода Chunk Laravel со временем замедляется - PullRequest
0 голосов
/ 06 июня 2018

Итак, в основном я пытаюсь импортировать данные из примерно 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);
     });
}

Всего около 2 миллионов записей, кажется, что он начинается очень быстро, но становится все медленнее и медленнее, когда он перемещается из таблицы в таблицу, а для его завершения требуются часы.На основании документации Laravel у меня сложилось впечатление, что разбиение по частям заставит вставки работать намного быстрее, но, похоже, имеет противоположный эффект.Любое руководство будет с благодарностью!

...