账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    PHP查询大批量MySQL疑问?
    41
    0

    整体环境:Apache2.4.25 + PHP5.6 + MySQL5.5.57

    需求:

    比如用户表中有2万条数据,需要将这些数据先查出,然后根据用户组表中对应设置的比例,计算用户应该升级还是降级,再进行更新操作。
    

    问题:

    当用户量小的时候,没有任何问题,直接浏览器执行,运行结束,所有任务完成。
    但是当用户量超过6000后,发现浏览器中会报Apache Server错误
    我的PHP代码中也增加了ignore_user_abort(true);和set_time_limit(0);
    

    做法:

    我目前的解决方案是,将这条任务拆分成若干个小任务,单个执行,这样虽然能解决了,但是不是长久之计啊。
    因为用户量还是会增加的。
    
    

    疑问:

    想问下,大神们,你们是如何处理这种情况的?
    
    因为代码原先不是我写的,只是接手后,用户增长到6000以上了,才发现这个问题的。
    
    中间我想调试下,用ob_flush() flush()看看过程的,结果完全失效,怎么弄都没反应,后来改用日志记录查看,才发现,每次每条任务,只能执行到大概2500左右的位置,就会自己挂掉。
    
    查看服务器资源,cpu和内存也没有满,数据库连接数也没有满,而且因为之前的频繁请求出错,我现在数据库已经改成长连接了。
    
    所以,唠叨了这么多,还是想问,大神们,你们在遇到这种任务的时候,是如何执行的?也是和我这边一样,同一个请求,一直等响应吗?还是有其他方法??
    
    
    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • -空白ゝ 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部