php.ini 已加上 "memory_limit = 1024M"。php 页首也加了 "ini_set('memory_limit', '1024M')"。
var_dump(ini_get('memory_limit'));和phpinfo() 证实上限已经到 1024M
这php只跑一句sql(2表join,数据分别约3百万),还是 报错 "...allocated 80740352",这表示只有分到 77MB啊! (=80740352除以1024再除以1024)。
还有哪里设置限制住了内存分配? http.conf ? 还是windows xp 系统里面?请高手支招!!
(电脑内存有3G。只需在命令行跑这php。该句sql已经无法再简化。就一句sql,无法用到unset来释放内存。这sql 直接在mysql操作没有问题。)
把PDO属性的PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 设置为false
试试看
http://stackoverflow.com/questions/13728106/unexpectedly-hitting-php-memory-limit-with-a-single-pdo-query
php最大支持128MB吧,
memory_limit上面描述有讲.
http://www.oschina.net/code/snippet_998019_19249
可以参考一下这篇.
$runcount=$memory/(strlen($string)+1);//为什么+1?因为需要留点内存给其它变量或者计算式.
可能算法不对,你可以不+1,将$runcount*0.99也可以.总要留点内存给其它变量.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。