美文网首页
关于php内存溢出的问题

关于php内存溢出的问题

作者: gogocheng | 来源:发表于2018-05-18 14:29 被阅读0次

    今天一上班,发现维护的网站除了问题,看了debug之后,总是出现
    Fatal error: Out of memory (allocated 243007488) (tried to allocate 36 bytes)
    上网查了后看到是php在执行代码时,内存不够。随机修改php.ini中的memory_limit的值,设置成512。
    重启php,测试还是失败,程序还是报之前的错。之后查看了代码和数据库,发现在控制器的方法有一个全表查询的代码,导致内存溢出。

    $ret = Db::name('locus') -> select();
    $time = array();
    foreach ($ret as $key => $value){
          $time[] = $value['time'];
          if(strtotime($time[$key]) == false){
                Db::name('locus') ->where('time','=',"$time[$key]") ->delete();
          }
    }
    上面这个代码完全是从全表来查,数据量很大。
    删除这一段代码,测试成功。
    

    从以上可以得出,代码中一定要避免大数据量的查询,在条件允许的条件下可以执行。要么做严谨的try catch,要么去分表,这样保证数据的正常使用。

    相关文章

      网友评论

          本文标题:关于php内存溢出的问题

          本文链接:https://www.haomeiwen.com/subject/ayjtdftx.html