首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存不足与允许内存大小*字节耗尽之间的差异

内存不足与允许内存大小*字节耗尽之间的差异
EN

Stack Overflow用户
提问于 2012-11-22 09:21:09
回答 2查看 1.2K关注 0票数 2

我试图从一个MySQL表中获得超过数百万行的PHP应用程序。

获取数据的步骤如下所示。

  1. 向mySQL发送mysql_query()或mysqli_query()查询。
  2. 将结果设置为数组,通过使用mysql_fetch_array().or添加数组循环每一行,使用mysqli_fetch_all()。

我将消息“从内存中取出”或“允许内存大小为*字节耗尽”。

如果我更改“memory_limit”,我可能会解决它们。

但我想知道为什么这些信息会被展示出来。

我把“memory_limit”改成了128米->51米->1024M。

设置128 m时,发送查询失败,允许内存大小为*字节,无法将结果添加到数组区域。

然后设置512 m,查询已成功完成,但我无法将结果添加到允许内存大小为*字节的数组中。

最后,设置1024M,发送查询和将结果添加到数组中都完成了.but,有时mysqli_fetch_all()是没有内存的字段。

我无法理解的一件事是,为什么记忆不足的事情不会经常发生?

我想知道的另一件事是如何从一个表中获得超过一百万行的全部行到PHP中,减少内存的转换。在获得整行之后,我希望让我的用户通过浏览器操作访问它们,包括下载一些类型的文件,比如csv。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-22 09:52:12

当所需的内存量超过php.ini文件中指定的内存限制时,您将得到“允许内存大小*字节耗尽”。

当服务器本身(或Apache或MySQL)耗尽内存时,您将“内存不足”。

票数 6
EN

Stack Overflow用户

发布于 2012-11-22 09:22:53

检索大量行的最佳选择是在查询中使用limitoffset并循环它们。

这将防止您面临的内存问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13509342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档