SELECT * FROM warehouse_rulelaw_merge
用PHP执行上面的语句,只读取了30几万就挂掉了,内存分配了512M,整个表的数据有60W。
求解。
我记得mysql取结果集的时候有2种方式,一个是直接把所有记录都读取出来,一个是对查询结果一条条的读取。
不知道你用的是不是mysql_系列函数,如果是的话,可以试试用mysql_unbuffered_query代替mysql_query,其它的api也有类似机制。
######回复 @__然__ : 好吧 解决问题就行 开始思路没对 别喷我######我知道为什么PHP不能处理这么大的数据,但是我没有一个好的办法来解决,谢谢你提供的API,经过这次教训之后,就不会在犯这个错误了。######是PHP挂掉了还是数据库挂掉了,
如果是PHP挂掉了,可以检查一下php的memory_limit配置了多大,512M?
######是PHP挂掉了,mysql没事, 分配给PHP 512M的内存######time_limit 设为 0######不是程序超时引起的,######加limit分页读...######回复 @__然__ : 不加的话死定了######就是不想加limit,######没有这样玩的,亲###### @松下裤腰带 我拒绝这样玩,啥变态的需求,这样很容易内存溢出,######回复 @__然__ : 你要这样玩,当然会遇到问题赛######我就这么玩了,所以遇到这样的问题。######1、2楼还教他设置……哪有这样玩的。你说说你是什么应用、用处吧。
######跑数据,我已经解决了这个问题了。 但是还是想知道为什么会有这种情况######是PHP挂掉了还是数据库挂掉了,
如果是PHP挂掉了,可以检查一下php的memory_limit配置了多大,512M?
那你的php 错误日志里估计有类似于下面的记录:
PHP Fatal error: Allowed memory size of xxxxxx bytes ....
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。