开发者社区> 问答> 正文

为什么PHP不能从从mysql读取大数据呢? 热:报错

SELECT * FROM warehouse_rulelaw_merge

用PHP执行上面的语句,只读取了30几万就挂掉了,内存分配了512M,整个表的数据有60W。

求解。

展开
收起
kun坤 2020-06-07 16:12:33 570 0
1 条回答
写回答
取消 提交回答
  • 我记得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 ....

    ######我的错误全开的,除了提示######出这个需求的人一定是个脑残.######这。。。脑袋被门夹了啊######为什么要用php读,直接把库导出来不就行了
    2020-06-08 11:19:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像