分块查询是为查询大量数据的需要而设计的,假如think_data表已经有超过1万条记录,但是一次性取那么大的数据会导致内存开销非常之大,但确实又有这个需要(例如查询所有的数据并导出到excel),采用分块查询可以缓解这个问题。

使用分块查询,可以把1万条记录分成100次处理,每次处理100条记录,代码示例如下:

Db::name('data')->where('status', '>', 0)->chunk(100, function ($list) {// 处理100条记录foreach($list as $data){}});

第二个参数可以是有效的callback类型,包括使用闭包函数。

系统会按照主键顺序查询,每次查询100条,如果你不希望使用主键进行查询,或者没有主键的话,则需要指定查询的排序字段(但必须是唯一的),例如:

Db::name('user')->where('status', '>', 0)->chunk(100, function ($list) {// 处理100条记录foreach($list as $data){}}, 'uid');

然后交给callback进行数据处理,处理完毕后继续查询下一个100条记录,如果你需要在中途中断后续的查询,只需要在callback方法调用中返回false即可,例如:

Db::name('data')->where('status','>',0)->chunk(100,function($list){foreach($list as $data){// 返回false则中断后续查询return false;        }});

分块查询 缓解内存开销相关推荐

  1. 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法

    文章目录 概述 官方说明 precision_threshold优化准确率和内存开销 HyperLogLog++ (HLL)算法性能优化 概述 继续跟中华石杉老师学习ES,第47篇 课程地址: htt ...

  2. 【Linux】free命令查询服务器内存信息

    Linux的free命令对于很多的Linux运维来说,应该是非常熟悉的了.但作为一个经常使用linux系统的小白来说,我们也需要了解一下free命令. free 命令显示系统内存的使用情况,包括物理内 ...

  3. 漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!

    实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态.在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你! 实验1:ESTABLISH空连接 ...

  4. JDBC的批量查询报告内存溢出解决方法

    JDBC的批量查询报告内存溢出解决方法 参考文章: (1)JDBC的批量查询报告内存溢出解决方法 (2)https://www.cnblogs.com/DreamDrive/p/5761227.htm ...

  5. ElasticSearch cardinality基数 算法优化内存开销及HLL算法

    2019独角兽企业重金招聘Python工程师标准>>> cardinality 可用于聚合函数,可计算某个字段的基数,即该字段的distinct值,它基于HLL算法来实现的.HHL会 ...

  6. Android 查看第三方应用进程的内存开销

    如何查看第三方应用进程的内存开销,举个例子:打开QQ小游戏,想知道QQ小游戏进程占用的内存大小,但我们不知道QQ小游戏的包名或者进程ID, 如何操作呢? 1)adb shell 2)top top命令 ...

  7. 49深入聚合数据分析_cardinality算法之优化内存开销以及HLL算法

    cardinality=count(distinct),5%的错误率,性能在100ms左右,如何对cardinality进行优化呢? 1.precision_threshold优化准确率和内存开销 G ...

  8. ElasticSearch教程——cardinality(去重)算法之优化内存开销以及HLL算法

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 说明,一般使用第一种和第二种方法,很少使用第三种HLL优化(效果不是特别明显) 1.cardinality语法 es,去 ...

  9. 49.ardinality算法之优化内存开销以及HLL算法

    主要知识点 precision_threshold参数的理解 HLL算法优化(hash) cardinality,count(distinct),5%的错误率,性能在100ms左右 一.precisi ...

最新文章

  1. re.findall()用法详解
  2. ASP.Net4.0中新增23项功能
  3. Hibernate学习笔记(一)----针对不同的数据库不同的配置
  4. java图形用户界面添加背景颜色不成功的解决方案
  5. Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
  6. hadoop 基础环境搭建(一)
  7. 为什么说现在是计算机视觉最好的时代?
  8. 用神经网络解释化学键能 化学键的键能:一个方程组的特征解
  9. Linux移植遇到问题记录
  10. Android多线程之同步锁的使用
  11. C#LeetCode刷题之#168-Excel表列名称(Excel Sheet Column Title)
  12. nil和NSNull
  13. 硬盘底座linux,微客智品 篇五十二:机械硬盘如何安放?用奥睿科单盘位移动硬盘底座助力新玩法...
  14. 解决win7 sp1专业版无法安装更新
  15. Idea Module not specified
  16. Chapter4.4:综合实例
  17. 流氓软件 巧压 怎么卸载?
  18. 在win10上去除移动硬盘的bitlocker
  19. SQL——数据定义DDL
  20. 病毒币骗局:号称募资生产口罩,研究疫苗

热门文章

  1. 安装完Oracle 11g之后启动SQL Developer 时报cannot find a j2se sdk错误的解决办法
  2. 小米11pro和vivox60哪个好
  3. Premature Optimization
  4. Linux-重装系统之静态ip配置
  5. php之自动加载(懒加载)
  6. Dictionary转为Model实例
  7. CSS布局奇技淫巧:各种居中
  8. whois老域名挖掘技术
  9. bzoj 4515: [Sdoi2016]游戏
  10. ios Swift 中文学习手册