在事务运行时防止其他应用程序中的超时

时间:2017-03-18 18:01:14

标签: php mysql transactions eloquent

我有一个PHP脚本(使用Eloquent),每天自动运行,并在桌面上进行数十万次插入和删除。

为了提高脚本的性能,以及防止在使用同一数据库的其他应用程序中出现不一致,我使用了这样的事务:

DB::transaction(function() use ($flights) {
  Flights::where('manual', false)->delete();

  foreach ($flights as $id => $value) {
    $count = Flights::where('id', $id)->count();

    if ($count !== 0) {
      Flights::create([
        'id' => $id,
        'value' => $value,
        'manual' => false
      ]);
    }
  }
}

但是,在数据库上执行选择查询时,来自其他来源的任何操作(例如应用程序的Web应用程序部分)都会有超时。

如何防止这种情况发生?

0 个答案:

没有答案