thinkphp8大数据需要批处理和游标查询方法

[复制链接]
查看346 | 回复0 | 2024-1-25 09:27 | 显示全部楼层 |阅读模式
thinkphp8大数据需要批处理和游标查询方法

当大量数据需要 批处理 时,比如给所有用户更新数据,就不能一次性全取出来,一批一批的来;
  1. // 批量处理
  2. Db::name("user")->chunk(2, function ($users) {
  3.     foreach ($users as $user) {
  4.         dump($user);
  5.     }
  6.     echo 1;
  7. });

  8. // 通过获取最后的SQL语句,发现用的是LIMIT 2
  9. return Db::getLastSql();
复制代码
另一种处理大量数据:游标查询,为了解决内存开销,每次读取一行,并返回到下一行再读取;

  1. // 批量处理2
  2. $users = Db::name("user")->cursor();
  3. // PHP生成器
  4. // halt($user);
  5. foreach ($users as $user) {
  6.     dump($user);
  7. }
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
517
贡献
188
丢币
0
主题
19
回帖
3
注册时间
2023-3-14
最后登录
2024-2-3