相关疑难解决方法(0)

Laravel-在重复键上批量插入会更新大数据集

我有大约80k记录,我每天需要运行几次插入/更新脚本。

INSERT INTO `my_rankings` (`id`, `rank`) VALUES (1,100),(2,99)(3,102)...(80000,3) 
  ON DUPLICATE KEY UPDATE `rank` = values(`rank`);
Run Code Online (Sandbox Code Playgroud)

这些记录当前为数组格式:

$rankings = [
  ['id' => 1, 'rank' => 100],
  ['id' => 2, 'rank' => 99],
  ['id' => 3, 'rank' => 102],
  ...
  ['id' => 80000, 'rank' => 3],
]
Run Code Online (Sandbox Code Playgroud)

有没有一种好的/高性能的方式可以运行上述更新查询?

我看过Eloquent的Model::updateOrCreate(...)。但是我认为我不能将其用于批量插入/更新。

我想避免foreach$rankings数组上使用和插入/更新单个记录,因为脚本将花费很长时间。

我在/sf/answers/2437100781/下有一个针对此问题的答案,但这远非优雅。

php mysql laravel eloquent

3
推荐指数
1
解决办法
4313
查看次数

标签 统计

eloquent ×1

laravel ×1

mysql ×1

php ×1