位置: 编程技术 - 正文

解决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不能正常显示运行时间的解决方法 原创

  • 企业公示实缴填写
  • 工资没走公账走的私人账户合法吗
  • 服务行业成本费用问题与对策
  • 哪些会计科目需要结转
  • 盈余公积转增股本的分录怎么写
  • 辅导期纳税人会计处理
  • 计算应交消费税需要扣除代收代缴消费税吗
  • 丢失支票补救措施
  • 销售返利计入什么科目
  • 业务招待费比例扣除额
  • 纳税期限与申报的关系
  • 退回房租含税的情况怎么入账?
  • 先付一半款财务应该怎么写
  • 17增值税发票怎么计算
  • 企业税收扣除标准
  • 特许权使用费的收入确认时间
  • 建筑企业的职工由于不服管理违反规章制度
  • 外汇实收资本如何做账
  • 销项税额抵减会取得专用发票吗为什么
  • 对公工行证书收入摘要写什么
  • win10如何获得管理员权限修改文件
  • 出口退税率为0%退税收入怎么算
  • 新职工工资从什么时候起算
  • php中const
  • 电冰箱一天用多少电费正常
  • 路由器怎么重置网络
  • PHP:curl_multi_init()的用法_cURL函数
  • flash是什么文件
  • 向灾区捐赠货物需要交增值税吗
  • 如何看待税收的本质
  • 软件工程毕设题目冷门
  • 债券溢折价是什么意思
  • linux的网络编程
  • 企业开办期间的税费
  • 单位管理费用核算范围包括
  • ci框架api版本
  • 房产税计入哪里
  • 社保缴费工资和实发工资不一样
  • 微信开发怎么实现
  • 快递行业一般纳税人税率是多少
  • explorer.exe无响应桌面卡死是什么原因
  • Web 1.0、Web 2.0 和 Web 3.0 之间的比较
  • win11磁盘分区后不显示
  • 银行存放中央银行准备金的会计处理
  • 充话费如何开公司发票
  • python next iter
  • 原材料账户该如何做账
  • 以权益结算的股份
  • 差旅费跨年报销违反什么规定
  • 小微企业所得税税率多少
  • 营业执照注销要钱吗
  • 未计提完固定资产怎么办
  • 单位结算卡和对公账户号码不一样
  • 招待客户的住宿费发票可以报销吗
  • 一般纳税人改成小规模可以吗
  • 公司买车可以少多少钱
  • 分配股利有几种形式
  • 小额 无发票
  • 去年的暂估入库今年想把它给冲出来怎么做分录
  • 进项票超期未认证怎么办
  • sql server 性能分析
  • mysql索引方式有哪些
  • OBJECTPROPERTY与sp_rename更改对象名称的介绍
  • sql怎么分组查询
  • win7系统管理在哪里
  • WIN10开启高性能模式
  • win阅读软件
  • imgconv.exe进程
  • win7打开游戏显示已停止工作
  • 东芝笔记本配件
  • window mobile系统
  • win 7关闭睡眠
  • cocos2d-x 3.4 windows 环境配置
  • pcl读取ply文件
  • js 浏览器全屏
  • python 开源框架
  • unity3d基础教程
  • 2020年职工探亲路费报销最新规定
  • 应交增值税减免税款借贷方向
  • 郑州市地税局局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设