加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php – 行使Eloquent查询耗尽了应承的内存限定

发布时间:2021-05-16 16:40:34 所属栏目:编程 来源:网络整理
导读:我有一个很是很是简朴的查询 select * from `users` where (`active` = 1 and `newsletter` = 1) and (`terminated` = 0 or (`terminated` = 1 and `newsletter_terminated` = 1)); 我正在用这样的雄辩来构建它(当我行使toSql()时,上面的查询获得输出 $recip

我有一个很是很是简朴的查询

select * 
from `users` 
where (`active` = 1 and `newsletter` = 1) and (`terminated` = 0 or (`terminated` = 1 and `newsletter_terminated` = 1));

我正在用这样的雄辩来构建它(当我行使toSql()时,上面的查询获得输出

$recipients = User::where([
    'active' => 1,'newsletter' => 1
])->where(function ($query) {
    $query->where('terminated',0)
        ->orWhere(function ($query){
            $query->where('terminated',1)
                ->where('newsletter_terminated',1);
        });
})->get();

可是当我执行这个剧本时,我收到了错误

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /xxx/eloquent/vendor/illuminate/database/Illuminate/Database/Connection.php on line 303

当我在get要领中编写特定列时,好比get([‘id’]);它没有题目.但我如故不大白为什么它不起浸染.好像有内存走漏,但在那边?

当我在我的SQL客户端中执行查询时,查询将以3毫秒完成,因此看起来不会有太大都据.不幸的是,我没有安装流离盒上的xdebug,以是我今朝无法得到stacktrace.

最佳谜底 相同的事产生在我身上.搜查模子中的$with属性.大概你有太多自动加载的相关.只管不这样做.每个工具分派内存.假如你有15000行有很多相关,而且你火急地加载每一行,那么影象就会消散.我竣事了写一个原始的mysql查询,题目办理了.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读