详细信息 您现在的位置是:首页 > ThinkPHP

数据分批处理chunk

来源: 发布时间:2021-08-29 2137 人已围观

摘要的时候我们会遇到需要定时操作数据的需求,比如定时更新所有用户的权益,徽章等等。这个时候你不能一次性取出所有数据来进行操作,因为数据量太大了,我们一次取出全部,先不说mysql数据库会很慢,就算取出来传给你,网络开销也很大。

所以我们就需要分页取出数据来进行操作,比如每次取出100条,操作完了再取出下100条。而tp框架提供了一个方便的chunk方法来供我们使用,免去了我们需要手动limit分页的麻烦。

public function chunklist(){
    $map = [];
    $map[] = ['id','>',21];
    $list = Db::name('ord')->where([$map])->chunk(100,function($dat){
    foreach ($dat as $key => $value) {
        $data = [];
        $data['id'] = $value['id'];
        $data['CardId'] = 45; 
        $data['IsRound'] = 1630142868;
        $data['MultiUid'] = 3;
        Db::name('ord')->update($data);
    }
});

这样去分批处理大量数据的时候就不用担心数据库、网络开销太大了。


站点信息

  • 电话:15226178738
  • QQ:1697915848
  • 邮箱:1697915848@qq.com