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 個更新就是了