laravel事务是否有任何内存/查询限制?

时间:2017-04-06 19:30:48

标签: php mysql laravel laravel-5.2

laravel交易有一个奇怪的问题

DB::transaction(function() {

     //Some operations
     // Around 200000  insert statements here 
});

问题是我在mysql上的记录只有大约20000(这个数字随机不一样)。 laravel日志,apache日志,mysql日志中没有错误。

请指导我正确的方向。我知道这不是一个好方法,但现在的代码我现在无法改变。

在具有潜在超时的网络上运行 Php超时 - 0, mysql查询超时600000

使用:Laravel - 5.2, PHP - 5.6, Mysql - 5.7.17

1 个答案:

答案 0 :(得分:-1)

我建议使用大块的插入物。

$insertArray = []; // you know, with 200,000 rows

DB::transaction(function() {
    foreach(array_chunk($insertArray, 2000) as $chunkInsert) {
        Modal::insert($chunkInsert); // this array is of size 2000
    }
});

此外,请确保某些操作优化,并且如果这与CRUD查询无关,那么我建议在db:之前编写该代码:交易。