分块查询 缓解内存开销
分块查询是为查询大量数据的需要而设计的,假如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; }});
分块查询 缓解内存开销相关推荐
- 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法
文章目录 概述 官方说明 precision_threshold优化准确率和内存开销 HyperLogLog++ (HLL)算法性能优化 概述 继续跟中华石杉老师学习ES,第47篇 课程地址: htt ...
- 【Linux】free命令查询服务器内存信息
Linux的free命令对于很多的Linux运维来说,应该是非常熟悉的了.但作为一个经常使用linux系统的小白来说,我们也需要了解一下free命令. free 命令显示系统内存的使用情况,包括物理内 ...
- 漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!
实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态.在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你! 实验1:ESTABLISH空连接 ...
- JDBC的批量查询报告内存溢出解决方法
JDBC的批量查询报告内存溢出解决方法 参考文章: (1)JDBC的批量查询报告内存溢出解决方法 (2)https://www.cnblogs.com/DreamDrive/p/5761227.htm ...
- ElasticSearch cardinality基数 算法优化内存开销及HLL算法
2019独角兽企业重金招聘Python工程师标准>>> cardinality 可用于聚合函数,可计算某个字段的基数,即该字段的distinct值,它基于HLL算法来实现的.HHL会 ...
- Android 查看第三方应用进程的内存开销
如何查看第三方应用进程的内存开销,举个例子:打开QQ小游戏,想知道QQ小游戏进程占用的内存大小,但我们不知道QQ小游戏的包名或者进程ID, 如何操作呢? 1)adb shell 2)top top命令 ...
- 49深入聚合数据分析_cardinality算法之优化内存开销以及HLL算法
cardinality=count(distinct),5%的错误率,性能在100ms左右,如何对cardinality进行优化呢? 1.precision_threshold优化准确率和内存开销 G ...
- ElasticSearch教程——cardinality(去重)算法之优化内存开销以及HLL算法
ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 说明,一般使用第一种和第二种方法,很少使用第三种HLL优化(效果不是特别明显) 1.cardinality语法 es,去 ...
- 49.ardinality算法之优化内存开销以及HLL算法
主要知识点 precision_threshold参数的理解 HLL算法优化(hash) cardinality,count(distinct),5%的错误率,性能在100ms左右 一.precisi ...
最新文章
- re.findall()用法详解
- ASP.Net4.0中新增23项功能
- Hibernate学习笔记(一)----针对不同的数据库不同的配置
- java图形用户界面添加背景颜色不成功的解决方案
- Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
- hadoop 基础环境搭建(一)
- 为什么说现在是计算机视觉最好的时代?
- 用神经网络解释化学键能 化学键的键能:一个方程组的特征解
- Linux移植遇到问题记录
- Android多线程之同步锁的使用
- C#LeetCode刷题之#168-Excel表列名称(Excel Sheet Column Title)
- nil和NSNull
- 硬盘底座linux,微客智品 篇五十二:机械硬盘如何安放?用奥睿科单盘位移动硬盘底座助力新玩法...
- 解决win7 sp1专业版无法安装更新
- Idea Module not specified
- Chapter4.4:综合实例
- 流氓软件 巧压 怎么卸载?
- 在win10上去除移动硬盘的bitlocker
- SQL——数据定义DDL
- 病毒币骗局:号称募资生产口罩,研究疫苗