我正试图在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);
希望它能解决您的问题