84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
Bitte geben Sie mir einen Pseudocode.Aktualisieren Sie 500 Daten einmal in einer Schleife.
将要批量更新的记录推入队列,然后消费队列,记得打日志,我们做队列在于有序地执行任务,且保证每条更新是一定完成的。
不知道具体的使用场景,不敢瞎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 条更新就是了