首页 > 解决方案 > 500 从查询中获取大量记录时发生内部错误

问题描述

我有一个查询,其中包括一些连接条件和子查询。这个查询返回了大约 1M 的结果。根据这个结果,我需要进行一些计算并实现逻辑以最终输出结果。

我的问题是当我运行这个查询时,它给了我 500 内部错误。我尝试将 php.ini 文件的内存增加到 2048M。但我仍然遇到同样的错误。

在 SO 中,我看到有人讨论 laravel 的块,但我不确定如何将它实现到给定的查询。

或者还有其他更好的解决方案来优化我的查询。


    $query = User::query();
            $query->select($cols)
            ->join().....

    $query->whereRaw("customer.cid IN (" . DB::raw($selectedSubQuery->toSql()) . ")")
                ->addBinding($selectedSubQuery->getBindings());

    $records = $query->get()->toArray();

标签: phplaravel

解决方案


我怀疑您的查询返回的行太多。在这种情况下,设计一种方法将查询拆分为一系列查询,这些查询作为一个组返回与原始查询匹配的所有行。


推荐阅读