Laravel不能获得超过15,000条记录

时间:2019-04-12 12:33:47

标签: php laravel postgresql laravel-5.1

我有一个非常简单的查询,可以从数据库中获取记录:

\DB::table("table")->get();

当我尝试从数据库中获取超过±145000条记录时,我得到: 500 server error

类似的代码:

\DB::table("table")->take(14500)->get();

虽然有效。当我尝试获取超过15k的值时,我立即得到错误,而没有任何负载或其他信息。 我也无法从日志中获取更多信息。奇怪的是,当我将代码写入修补程序时,我可以获得所有记录。 (与雄辩的作品一样)

1 个答案:

答案 0 :(得分:4)

如果您要检查错误日志,则很可能会看到以下内容:

export const valueSearch = (value: string, hasEmptyValue: boolean, profile: ProfileHolder, attributeId: string, objectTypeId: string, typeName: string = "ValueSearch") => {
    const obj = {
        "__typename": "SearchFromProfile",
        "profileHolder": {
            "__typename": profile.__typename,
            "Id": profile.Id
        },
        "search": {
            "__typename": "HasValue",
            "objectTypeId": objectTypeId,
            "attributeId": attributeId
        }
    };
    if (!hasValue) {
        obj.search.hasValue = false
    }
    else {
        obj.search.value = value
    }
}

最好chunk结果而不是一次全部加载到内存中

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)