位置: 编程技术 - 正文

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

  • 出口退税逾期申报说明怎样写
  • 假发票是怎么开出来的
  • 上级补助收入对应的支出科目是哪个
  • 装卸搬运的设备有哪些类型
  • 一次性开票分期确认收入的税务文件是什么
  • 股东分红按利润表的净利润计算
  • 代订机票被骗可以追回吗
  • 资产组减值测试要包含使用权资产吗
  • 商贸公司批发零食怎么样
  • 编制竣工结算的具体增减内容有哪几个方面?
  • 现金流量表关注指标
  • 退休人员基本养老金调整幅度需要综合考虑什么因素
  • 固定资产抵扣期限
  • 税局税种认定
  • 普通发票年份代码有什么具体含义?
  • 背书出去的票据信息在哪里查询
  • 企业为员工购买团体医疗险可以全额税前扣除
  • 债务利息税前列支什么意思
  • 研发费用如何分摊到多个项目的建议
  • 对公账户长期不用怎么收费
  • 存货清查的账务处理的阐述
  • 银行贷款的坏账是什么意思
  • 工资五险一金缴费标准是多少
  • 老板垫付的货款怎么做凭证?
  • 鸿蒙系统怎么开发
  • 用现金换承兑怎么做账
  • 预付账款属于资产性质的账户
  • 如何调整往来账款
  • 如何在旧的php系统中删除
  • u盘如何装系统win7
  • PHP:session_write_close()的用法_Session函数
  • 研发费用的会计和税法的不同
  • PHP:pcntl_getpriority()的用法_PCNTL函数
  • 非货币性资产交换
  • php zmq
  • 房抵债权
  • 建筑行业施工规范有哪些
  • 倾向得分匹配后怎么进行回归
  • 会计审核费用报销单的职责
  • 企业收到银行未收到怎么做账
  • 固定资产投资入股是否缴纳增值税
  • 文化传媒有限公司英文
  • 销售收入未开票
  • 税务现金流量表填错了怎么办
  • 预付账款用途
  • 残保金账务处理会计科目
  • 房屋出租后转租缴纳房产税吗
  • 一般纳税人购买原材料会计分录
  • 出差补助办法
  • 增值税专用发票查询系统官方网站
  • 怎样理解
  • 上月计提少了怎么办
  • 挂靠地址如果被查了应该怎么处理?
  • ubuntu16设置启动项
  • hkcmd.exe损坏文件
  • windows server 2016正式版下载激活安装设置教程
  • mac怎么多开
  • Windows 7 RTM、Vista、XP 性能测试
  • win1020h2版好不好
  • Ubuntu如何安装软件
  • linux 文件查看
  • shstart.exe - shstart是什么进程 有什么用
  • win7 64位系统怎么查看串口号?
  • win7只能上qq不能上网页
  • linux vmware命令行
  • win8怎么改系统
  • opengl自学
  • jQuery基于xml格式数据实现模糊查询及分页功能的方法
  • windows下载安装
  • Node.js中的全局对象有
  • 简述matlab中控制系统的数学描述类型
  • jquery判断div是否为空
  • python xml 解析
  • 如何编写高质量创业计划书实验小结
  • 智能财税证书含金量如何
  • 粮食收储企业税收优惠
  • 烟台税务热线电话查询
  • 契税纳税申报表在哪里拿
  • 叶青和奚卫华
  • 河北电子税务局怎么使用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设