【发布时间】:2018-01-01 00:17:39
【问题描述】:
我正在尝试将数据(每晚)从一个古老的系统中导出到更容易编写代码的东西中;但是,导出的数据量非常大。
我将数据转储为 JSON 对象,然后尝试使用 Laravel updateOrCreate(),但我的数据太多了。将所有数据处理成 250 万 个 MySQL 行通常需要大约 10 个小时。
我认为它很慢,因为它实际上执行了 500 万次查询。
有谁知道使用 Laravel 如何有效地执行 MASSIVE updateOrCreate() 的任何好例子?
【问题讨论】:
-
您可能想要在 Eloquent 之外执行此操作。
-
ORM 在处理大量数据方面并不是特别出色。为此使用普通的旧 sql。 Insert ... select ... 用于插入,多表更新用于更新。
-
您可能希望至少对数据进行分块,以避免在处理之前将这些数据占用您的内存。试试这个方法怎么样:stackoverflow.com/a/44891984/5704410
标签: php mysql laravel laravel-5 laravel-5.4