【发布时间】:2012-02-07 08:54:49
【问题描述】:
我正在使用 CodeIgniter 发出一个 SQL 查询,它可以返回超过 80,000 行的结果。每行有三列都是整数,我得到一个 PHP 错误: 致命错误:允许的内存大小为 134217728 字节已用完
似乎我试图使用超过 128MB 来从 MySQL 服务器检索结果。我正在使用 $query->result_array() 来检索结果。在我得到的结果中,空间方面显然存在严重的开销。假设我检索了 100,000 行,其中包含 3 个整数。所以 100,000*((3*4 + 10)= 2.1MB。(10 是用于列 id 等的字节数)。
我是不是做错了什么?
----------已解决-----------
通过修改CodeIgniter代码解决:link。
现在执行速度更快,脚本只占用约 3MB 的内存,而不是超过 128MB。
【问题讨论】:
-
检索块,进程;检索下一个块 ...
-
听从 Dagon 的建议,不要一次拿走所有数据。
-
@Dagon 你能给我们展示一些关于如何“检索块,处理;检索下一个块”的例子吗?
-
您的解决方案链接已失效。请说明您是如何解决此问题的
标签: php mysql sql codeigniter