我有 Laravel 项目,我需要定期检查 3.000 个应用程序用户之一是否在反洗钱数据库(5.000.000 行大型Microsoft SQL表)中。
在前端,我使用 ajax 进行了异步操作,因此当我单击“检查用户”按钮时,我将等待响应。
$users = User::all(); // 3.000 rows
foreach($users as $user){
$aml = DB::table('anti_money_laundering') // 5.000.000 rows
->select('ID')
->whereRaw("LOWER([FULL_NAME]) = ?", [$user->full_name])
->first();
if($aml){
//Bingo, do stuff
//Continue
}
}
但是我收到maximum execution time of 30 seconds错误,我认为在配置中增加请求时间php.ini并不能解决我的问题。
我该怎么做?大查询/长请求的最佳实践是什么?
小唯快跑啊