错误:内存不足/连接已重置


error: out of memory / the connection was reset

我正试图在windows(64位,4 Gb ram)上使用xampp(v5.5.30)在php页面上进行大规模选择。

然而,几分钟后,我收到了两条错误消息:

A) 浏览器中的"连接被重置",或者有时:

B) "mysql_query():(HY000/2008):内存不足…"。

在这两种情况下,PHP脚本本身都会被暂停,甚至使用以下指令:

ignore_user_abort(true);

我不明白为什么会发生这种事。我尝试过的东西:

1) 添加到我的apache配置文件中:

<IfModule mpm_winnt_module> ThreadStackSize 8388608 </IfModule>,因为在错误日志中,我注意到连接重置时的行:

【2015年12月7日星期一13:01:23.540742】【mpm_winnt:通知】【pid 2344:tid504]AH00428:父进程:子进程4036已退出,状态为3221225477--正在重新启动。

【2015年12月7日星期一12:09:39.584814】【mpm_winnt:通知】【pid 1684:tid528]AH00354:子线程:正在启动150个工作线程。

这个错误似乎在某种程度上与我的问题有关。但是,更改配置文件没有帮助,错误仍然出现。

2) 更改了php.ini设置:

ini_set("memory_limit","750MB");

3) 删除所有mysql缓存使用:

RESET QUERY CACHE

4) 设置PHP超时:

set_time_limit(60*60);

错误发生在几分钟后。

附加说明:主选择查询(mytable.MYD)中使用的表的文件大小为400Mb,我在选择中只使用了其中的几列。一旦查询加载到PHP内存中,在执行while循环之前,内存占用为60Mb(使用memory_get_usage())

知道我能做些什么来解决这个问题吗?

感谢

您还必须设置执行时间。

将执行时间设置为0,其功能等同于完全关闭执行限制:

ini_set('max_execution_time',0);

希望它能解决您的问题