位置: 编程技术 - 正文

解决PHP里大量数据循环时内存耗尽的方法(php大量数据处理)

编辑:rootadmin

推荐整理分享解决PHP里大量数据循环时内存耗尽的方法(php大量数据处理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:解决php里大量数字的方法,解决php里大量数字错误,解决php里大量数字错误,解决php里大量数字的方法,php大量数据处理,php大量数据处理,解决php里大量数字的方法,解决php里大量数据的方法,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在开发一个PHP程序的时候遇到如下一问题:

PHP Fatal error: Allowed memory size of bytes exhausted

错误信息显示允许的最大内存已经耗尽。遇到这样的错误起初让我很诧异,但转眼一想,也不奇怪,因为我正在开发的这个程序是要用一个foreach循环语句在一个有4万条记录的表里全表搜索具有特定特征的数据,也就是说,一次要把4万条数据取出,然后逐条检查每天数据。可想而知,4万条数据全部加载到内存中,内存不爆才怪。

毕竟编程这么多年,我隐约记得PHP里提供有非一次全部加载数据的API,是像处理流媒体那样,随用随取随丢、数据并不会积累在内存的查询方法。经过简单的搜索,果然在官方网站上找到的正确的用法。

这个问题在PHP的官方网站上叫缓冲查询和非缓冲查询(Buffered and Unbuffered queries)。 PHP的查询缺省模式是缓冲模式。也就是说,查询数据结果会一次全部提取到内存里供PHP程序处理。这样给了PHP程序额外的功能,比如说,计算行数,将 指针指向某一行等。更重要的是程序可以对数据集反复进行二次查询和过滤等操作。但这种缓冲查询模式的缺陷就是消耗内存,也就是用空间换速度。

解决PHP里大量数据循环时内存耗尽的方法(php大量数据处理)

相对的,另外一种PHP查询模式是非缓冲查询,数据库服务器会一条一条的返回数据,而不是一次全部返回,这样的结果就是PHP程序消耗较少的内存,但却增加了数据库服务器的压力,因为数据库会一直等待PHP来取数据,一直到数据全部取完。

很显然,缓冲查询模式适用于小数据量查询,而非缓冲查询适应于大数据量查询。

对于PHP的缓冲模式查询大家都知道,下面列举的例子是如何执行非缓冲查询API。

非缓冲查询方法一: mysqli

非缓冲查询方法二: pdo_mysql

非缓冲查询方法三: mysql

以上内容就是小编给大家分享的解决PHP里大量数据循环时内存耗尽的方法,希望对大家有所帮助。

ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创 本文实例讲述了ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法。分享给大家供大家参考。具体如下:在ThinkPHP的config.php中设置:'SHOW_RUN_TIME'=true;

PHP+Mysql+jQuery文件下载次数统计实例讲解 项目中我们需要统计文件的下载次数,用户每下载一次文件,相应的下载次数加1,类似的应用在很多下载站中用到。本文结合实例使用PHP+Mysql+jQuery,实

PHP+Mysql+jQuery中国地图区域数据统计实例讲解 今天我要给大家介绍在实际应用中,如何把数据载入到地图中。本文结合实例,使用PHP+Mysql+jQuery实现中国地图各省份数据统计效果。本例以统计某产品

标签: php大量数据处理

本文链接地址:https://www.jiuchutong.com/biancheng/275990.html 转载请保留说明!

上一篇:php中删除、清空session的方式总结(php清空数据表)

下一篇:ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创

  • 小企业会计准则下退企税分录
  • 全球第一家上市的互联网电商平台
  • 去年收到一张普票超范围了怎么办
  • 公司一般户需要年检吗
  • 税率3%的增值税专用发票
  • 有限公司能否申请破产
  • 车辆租赁发票税点
  • 工业企业生产费用要素
  • 在建工程待摊支出例题
  • 发票没认证可以作废吗?
  • 国库集中支付行政运行
  • 进料料件内销账务处理怎么做?
  • 取得投资收益会导致经营现金流量小于
  • 个体工商户怎么交社保
  • 一般纳税人销售二手车增值税税率
  • 个人劳务法律规定
  • 印花税计算公式例子
  • 主营业务收入和产值
  • 盈余公积为0说明什么问题
  • 汇总纳税企业的分公司如何享受税收优惠政策
  • 经营性现金净流量是什么意思
  • 合同的印花税税率
  • 公司房租押金收不回来账务处理
  • 无形资产减值损失后能不能转回
  • 专家费收取多少合适
  • 服务设计合同标准版
  • 闲置房屋
  • bois如何设置启动项
  • 华为最新款手机2023款
  • windows 11怎么样
  • window10没有激活码
  • 补充协议是否缴纳印花税
  • 以分期收款方式销售货物的按照什么日期确认收入的实现
  • 印花税贴花怎么贴划线
  • 临时存款账户怎么开户
  • 企业一次性取得所得税
  • 缴纳水利建设基金计入什么科目
  • 电话费发放标准2020
  • thinkphp ide
  • unet bn
  • php框架基础教程
  • 个人怎么开专票
  • 包装费包含什么
  • 广告费支出税前扣除标准30
  • 公司缴纳的印花税会计分录
  • mongodb4.4.2安装教程
  • CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程
  • sql server数字类型
  • 核销单取消后出口收汇流程
  • 购买二手车后
  • 营业外支出是什么类账户
  • 事业单位外出参观培训心得
  • 员工报销签字流程
  • 公司差旅费报销标准表
  • 如何计提五险一金比例
  • mysql替换命令
  • sql server 服务器配置
  • mysql查询慢sql命令
  • windows 文件名太长无法删除
  • vi修改文件
  • 教大家如何重做作业
  • groove音乐怎么添加本地音乐
  • ubuntu login用户名
  • 苹果电脑dock栏不见了
  • windows缓存写入失败,数据怎么找回
  • linux文件压缩和备份实验
  • win10启动提示
  • 在linux系统中,用来存放系统所需要的
  • Android OpenGL ES(三)----编程框架
  • Cocos2dx3.2 Crazy Tetris 游戏输入(键盘事件,重力事件,触摸屏事件)
  • bat vba
  • unity3ds
  • 使用vs code开发Django
  • android开发最全教程
  • jQuery iScroll.js 移动端滚动条美化插件第1/5页
  • 控制游戏类型
  • scroll-view组件用于实现
  • javascript教程chm
  • 河南商丘医疗保险在微信上怎么交
  • 费减备案合格后怎么操作?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设