位置: 编程技术 - 正文

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

  • 认缴制股权转让印花税的计税依据是什么
  • 应税劳务销售额税率
  • 税务知识:价外费用包括哪些费用?
  • 研发活动计入当期损益怎么计算
  • 房地产企业增值税收入确认时间
  • 增加固定资产原值账务处理
  • 劳务公司一般纳税人开票几个点
  • 融资融券与普通证券交易的区别体现在
  • 企业所得税该如何计算
  • 普通发票可以改明细吗
  • 咨询费发票入账风险
  • 跨年收到暂估费用的发票如何处理
  • 有限合伙企业对外转让财产份额
  • 作废的发票怎么处理
  • 财务付款制度及流程图
  • 财务费用的借方和贷方
  • 累计折旧属于什么
  • 报废的周转物怎么处理?
  • excel合并的单元格怎么填充序列
  • 增值税电子发票公共服务平台
  • win10老是错误
  • windows11怎么快速截屏
  • 在win7系统中将打开窗口拖到屏幕顶端
  • 在php中,字符串有哪些表示形式
  • backup是什么文件夹怎么能打开
  • win10 打开远程连接
  • kzip_main.exe是什么
  • 材料分配的四个步骤
  • node.js如何安装
  • 腾讯一面问什么
  • html用语
  • 外账和内账哪个比较有发展
  • 深究Python中的asyncio库-线程并发函数
  • 电子发票怎么清盘操作流程
  • 法人如何提取公积金余额
  • 织梦模板如何安装
  • 增值税进项加计抵减怎么计算
  • 企业所得税报表查询怎么查
  • 企业捐赠支出计入什么科目
  • 市政绿化工程的施工方案
  • 应交税费的账务处理一般纳税人
  • 仓库转租合同
  • 困难行业企业包括哪四大类
  • 收到销货方的返款分录
  • 代开租金发票的税金怎样入账?
  • 高新技术企业政府补助要交所得税吗
  • 疫情期间购买消毒弥雾机的请示
  • 金税盘每年服务费可以抵扣吗
  • 专票和普票的作用
  • 实收资本挂在其他应收款现在股权转让
  • 建筑劳务没有合同能起诉吗
  • 汽车折旧年限是多久
  • mysql主界面
  • mysql密码总是输入错误
  • windows怎样删除文件
  • apt-get download
  • win8 更改电脑设置
  • win7电脑键盘失灵怎么解决
  • window10分屏显示
  • linux配置文件命令
  • cocos2dx schedule
  • 关于session的用法哪些是错误的
  • node实战
  • css自学
  • python中将
  • Android Toast设置弹窗大小
  • socket教程pdf
  • jquery22插件网
  • unity mathf.sin
  • 安卓数据网络
  • Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画
  • sudo提权漏洞
  • 新浪微博手机客户端下载
  • 浙江市税务局怎么进
  • 辽宁取暖补贴发放标准2020
  • 如何做好协税工作
  • 怎么查询购置税交了没有
  • 法治建设的基本原则是什么
  • 小汽车碰撞游戏视频
  • 入库税收怎么根据完税证明
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设