gpt4 book ai didi

php - Laravel:大规模 updateOrCreate()

转载 作者:行者123 更新时间:2023-11-29 18:35:45 27 4
gpt4 key购买 nike

我正在尝试将数据(每晚)从陈旧的系统导出到更容易编写代码的系统中;然而,导出的数据量是巨大的。

我将数据转储为 JSON 对象,然后尝试使用 Laravel updateOrCreate(),但我的数据太多了。将所有数据处理成 250 万 MySQL 行通常需要大约 10 个小时。

我认为它很慢,因为它实际上执行了 500 万次查询。

有人知道如何使用 Laravel 高效执行大规模 updateOrCreate() 的好例子吗?

最佳答案

可能很多都取决于确切的数据,但我会尝试使用数据包。因此,您首先从 JSON 中获取 500 条数据记录,然后手动运行 500 个查询来验证数据是否存在。

对于那些存在的,您对每个都运行更新,但对于那些不存在的,您不会立即将它们插入,而是将它们放入数组中,然后像这样批量插入它们:

DB::table('your_table')->insert($records);

您应该确保您的记录没有太多或太少,以尽可能加快该过程。

一般来说,批量插入可以大大加快您的操作速度,但一切都取决于您拥有的数据以及放置这些数据的确切算法是什么。

关于php - Laravel:大规模 updateOrCreate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45314010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com