位置: 编程技术 - 正文

如何解决PHP使用mysql_query查询超大结果集超内存问题(如何解决php使用延迟问题)

编辑:rootadmin

推荐整理分享如何解决PHP使用mysql_query查询超大结果集超内存问题(如何解决php使用延迟问题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php常见问题,php phyon,php的使用,php使用教程,php遇到的问题,php的使用,如何解决php使用问题,php的使用,内容如对您有帮助,希望把文章链接给更多的朋友!

再使用mysql_query查询超大结果集的时候会出现超出内存限制的致命错误,这是因为mysql_query采用的是查询全部结果然后把结果集全部缓存到内存中的方式。

mysql的查询还提供了另外一种查询方式,函数名为mysql_unbuffered_query,这个函数采用的是查出结果后立即操作结果集,并不会把结果集缓存到内存中,这样就避免了超出内存的情况发生。但是使用这个方法的代价就是不能再查询的时候使用获取总行之类的方法,因为这种方法是便查询边返回结果。同时在使用该方法的时候不能在同一数据库链接上执行其他的操作,想要执行其他操作的时候必须先终止当前操作,释放所有未缓存的sql查询所产生的结果行,或者重新实例化一个数据库连接,使用新链接进行其他操作。

以下是使用缓存和不使用缓存的对比(所查询的表中有多万行数据):

上面使用到的是缓存所有结果集的方式,运行该函数时将会报超内存的错误,如下所示:

Fatal error: Allowed memory size of bytes exhausted (tried to allocate bytes) in E:ProgramDevelopmentRuntimeEnvironmentxampphtdocstesttest.php on line

Call Stack:

0. 1. {main}() E:ProgramDevelopmentRuntimeEnvironmentxampphtdocstesttest.php:. 2. test->selecttest() E:ProgramDevelopmentRuntimeEnvironmentxampphtdocstesttest.php:. 3. PDOStatement->execute() E:ProgramDevelopmentRuntimeEnvironmentxampphtdocstesttest.php:

如何解决PHP使用mysql_query查询超大结果集超内存问题(如何解决php使用延迟问题)

在执行$sth->execute();时超出内存限制;

将// $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);这行的注释去掉后将使用不缓存结果集的方式,运行该函数将输出以下内容:

最初占用内存大小:

占用内存大小:

占用内存大小:

占用内存大小:

占用内存大小:

占用内存大小:

可以看到,使用不缓存结果集的方式获取一行结果所占用的内存是极少的。这样就结局了超出内存限制的问题。

Zend Framework教程之Bootstrap类用法概述 本文实例讲述了ZendFramework中Bootstrap类用法。分享给大家供大家参考,具体如下:Zend_Application_Bootstrap_BootstrapperZend_Application_Bootstrap_Bootstrapper是所有引导

Zend Framework自定义Helper类相关注意事项总结 本文讲述了ZendFramework自定义Helper类相关注意事项。分享给大家供大家参考,具体如下:编写自定义的Helper类编写自定义的Helper类很容易,只要遵循以下

Zend Framework教程之Application用法实例详解 本文实例讲述了ZendFramework教程之Application用法。分享给大家供大家参考,具体如下:Zend_Application是ZendFramework的核心组件。Zend_Application为ZendFramework应用

标签: 如何解决php使用延迟问题

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

上一篇:Zend Framework教程之资源(Resources)用法实例详解(zendframework3)

下一篇:Zend Framework教程之Bootstrap类用法概述(framework core)

  • 三公经费指的是什么
  • 海关对哪些物品有出入境的限制规定
  • 那些车不用交税
  • 一般纳税人的认定时间
  • 企业所得税的征税对象包括
  • 本年利润期末有无余额
  • 固定资产账务处理实操
  • 公司购买煤炭的会计分录
  • 出售交易性金融资产的交易费用计入
  • 劳务派遣人员工资可以由用工单位发放么
  • 已投入使用的机器设备才能计提折旧对吗
  • 福利企业要求
  • 建筑业的进项税怎么抵扣
  • 公司车买保险怎么付款
  • 销售返利计入什么科目
  • 房地产公司工程管理制度
  • 多收账款怎么账务处理
  • 一次性收到跨期租赁费会计分录
  • 材料检测费怎么计算
  • 工业企业哪些房子要交房产税
  • 开错税率怎么报税
  • 计提的工资没有实际发放,是否需要调增?
  • 建筑行业一般纳税人税率是多少
  • 公司退股清算对股东影响
  • 现金净增加额为负数是什么意思
  • 出口旧设备最新政策
  • 建筑施工企业跨区域如何缴税
  • 给法院交的诉讼费怎么交
  • 固定资产属于金融负债吗
  • wordpress 设置
  • win10关闭端口号
  • 企业所得税年报申报时间
  • 收到银行存款利息会计分录
  • lcasensor是什么进程
  • iframe更改自身src
  • 固定资产投资账务处理
  • 实际交印花税会计分录
  • php如何调用类
  • 发票打印出来的字太靠下了
  • 会计劳保用品有哪些东西呢
  • javaweb实现用户登录注册
  • 最新windows11安装要求
  • uniapp前端 django后端
  • 公司的钱借给个人必须要有利息吗
  • 织梦官方网站
  • 九步功法
  • sqlserver 比较时间
  • 企业税收风险因素分析
  • 自然人独资公司可以变更法人吗
  • 现金周期和经营周期的计算公式
  • 存货成本明细科目表
  • 个税申报中本人扣除比例什么意思
  • sqlserver 数据迁移
  • 土地使用权的使用是什么意思
  • 包装物押金怎么计算
  • 怎么打印税务登记证明备案表
  • 小规模纳税企业在应交增值税明细科目
  • 公司不按照劳动法给工资怎么办
  • 购销业务活动包括哪些
  • sql数据库建立步骤
  • 通过分析SQL语句的执行计划优化SQL
  • docker mysql 数据存储容器目录
  • windows英文字体
  • 内存运行linux
  • windows8设置自动关机
  • macos 复制快捷键
  • 如何把win7系统复制到u盘里
  • bat for do
  • cocos2dx 3.4 lua加密 setXXTEAKeyAndSign
  • Time、Set、Smartdrv命令的使用方法
  • perl getoption
  • cocos2dx 不规则按钮的实现
  • nodejs mocha
  • css划动
  • python中requests小技巧
  • 网页上面的收藏夹显示
  • 相机调取失败
  • 国家税务总局全国增值税查询
  • 现在还有地方税务登记证吗
  • 郑州土地出让金2023年多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设