扫码关注官方订阅号
求个伪代码每次循环一次 更新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 条更新就是了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
将要批量更新的记录推入队列,然后消费队列,记得打日志,我们做队列在于有序地执行任务,且保证每条更新是一定完成的。
不知道具体的使用场景,不敢瞎BB
BB一下
取出一个大数组之后
1.如果是同一张表,并且有某种相同特征某些数据可以使用where条件批量更新
2.如果不同的表,且逻辑也不一样,那要考虑是否会超时了,如果无需用户买单的请求,可以采用
fastcgi_finish_request
中断用户请求,再继续执行代码,或者采取定时任务的形式先确定总次数,然后 for 循环每次取 500 条更新就是了