求个伪代码每次循环一次 更新500条数据
将要批量更新的记录推入队列,然后消费队列,记得打日志,我们做队列在于有序地执行任务,且保证每条更新是一定完成的。
不知道具体的使用场景,不敢瞎BB
BB一下
取出一个大数组之后
$res = []; for ($x=0; $x<=($res/500); $x++) { $res = array_slice($res,0+500*$x,500); if($res) { update table set=value where id($res['id']);修改数据库 foreach($res as $key=>$value) { $res[$key]['某值'] = ‘某值’; } } }
1.如果是同一张表,并且有某种相同特征某些数据可以使用where条件批量更新
update table set count=count+1 where id > 1 and id < 501
2.如果不同的表,且逻辑也不一样,那要考虑是否会超时了,如果无需用户买单的请求,可以采用fastcgi_finish_request 中断用户请求,再继续执行代码,或者采取定时任务的形式
fastcgi_finish_request
先确定总次数,然后 for 循环每次取 500 条更新就是了
将要批量更新的记录推入队列,然后消费队列,记得打日志,我们做队列在于有序地执行任务,且保证每条更新是一定完成的。
不知道具体的使用场景,不敢瞎BB
BB一下
取出一个大数组之后
1.如果是同一张表,并且有某种相同特征某些数据可以使用where条件批量更新
2.如果不同的表,且逻辑也不一样,那要考虑是否会超时了,如果无需用户买单的请求,可以采用
fastcgi_finish_request
中断用户请求,再继续执行代码,或者采取定时任务的形式先确定总次数,然后 for 循环每次取 500 条更新就是了