我正在尝试使用xampp(v 5.5.30)在Windows(64位,4 Gb ram)上在php页面上进行大量选择* {insert into ..}。
几分钟后,我收到两条错误消息:
A)"连接被重置"在浏览器中,或者有时:
B)" mysql_query():( HY000 / 2008):内存不足......"在插入查询期间。
在两种情况下,即使使用指令,PHP脚本本身也会暂停:
ignore_user_abort(true);
我无法弄清楚为什么会这样。我试过的事情:
1)在我的apache配置文件中添加:
<IfModule mpm_winnt_module> ThreadStackSize 8388608 </IfModule>
因为在错误日志中我注意到连接重置时的行:
[Mon Dec 07 13:01:23.540742 2015] [mpm_winnt:notice] [pid 2344:tid 504] AH00428:父:子进程4036退出,状态为3221225477 - 重新启动。
[Mon Dec 07 12:09:39.584814 2015] [mpm_winnt:notice] [pid 1684:tid 528] AH00354:孩子:开始150个工作线程。
似乎这个错误在某种程度上与我的问题有关。但是更改配置文件没有帮助,但仍然出现错误。
2)更改了php ini设置:
ini_set("memory_limit","750MB");
3)使用以下方法删除所有mysql缓存:
RESET QUERY CACHE
4)设置PHP超时:
set_time_limit(60*60);
错误发生在几分钟后。
附加说明:主select-query(mytable.MYD)中使用的表的文件大小为400Mb,其中我只使用select中的几列。一旦查询加载到PHP内存中,在执行while循环之前,内存占用量为60Mb(使用memory_get_usage())
知道我能做些什么来解决这个问题吗?
感谢
答案 0 :(得分:0)
您还必须设置执行时间。
将执行时间设置为0,它在功能上等同于完全关闭执行限制:
ini_set('max_execution_time',0);
希望它能解决你的问题