我有一个超过360.000行的文件,每一行都是一个JSON。

我将Json读入Php变量并将其插入两个表中

“电影”和“电影细节”

我正在使用Laravel 5.4。
我的问题是性能。
所以我可以用这段代码在一分钟内插入约35-40行

$idMovie = DB::table('movies')
   ->insertGetId([
       'moviedb_id' => $id,
       'adult' => $adult,
       'created_at' => $dateTime,
  ]);
  DB::table('movies_title')
      ->insert([
          'movie_id' => $idMovie,
          'original_title' => $original_title,
          'created_at' => $dateTime,
      ]);


但我想任何人都知道一种更快更好的插入方式。

谢谢你的时间。

最佳答案

您可以使用多个插入(批量插入),前提是您可以为vars分配一个数组

如在平面sql中

    insert into your_table (moviedb_id, adult, created_at)
    values ($id[0],  $adult[0], $dateTime[0]),
            ($id[1],  $adult[1], $dateTime[1]),

            ......
            ......
            ($id[n],  $adult[n], $dateTime[n])


这样,每次插入时,您插入的行会更多,而不是30-40分钟,您可以插入30 * n-40 * n行

因此,请检查您的ORM或框架查询管理器是否具有等效功能

关于php - PHP文件内容到多个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47291160/

10-10 13:57