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
答案 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:之前编写该代码:交易。