我有一个超过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/