84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
求个伪代码每次循环一次 更新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 条更新就是了