php - Laravel 无法获取超过 15k 条记录

标签 php laravel postgresql laravel-5.1

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

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

当我尝试从数据库中获取超过 ±145000 条记录时,我得到: 500 服务器错误

代码如下:

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

虽然有效。当我尝试获取超过 15k 时,我会立即收到错误消息,而没有任何加载或更多信息。 我也无法从日志中获取更多信息。奇怪的是,当我编写该代码进行修补时 - 我可以获得所有记录。 (与eloquent 作用相同)

最佳答案

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

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

不如chunk您的结果,而不是一次将其全部加载到内存中

\DB::table("table")->chunk(500, function($results) {
    foreach($results as $result) {
       do your thing
    }    
});

关于php - Laravel 无法获取超过 15k 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55651736/

相关文章:

php - 订购带有小数和非小数的 varchar 字段

php - 如何使用简单的缓存系统计算页面浏览量

mysql - Laravel 6 外键约束格式不正确

php - 更改文件夹结构以删除公用文件夹时对 Laravel 5 安全性的影响

asp.net - 如何配置 Entity Framework 以允许数据库为 PostgreSQL (npgsql) 生成 uuid?

php - 如何在当前目录之外创建目录?

php - 在 PHP 中显示数据库中的值字段

laravel cron 没有触发,但其他 cron 正在触发

Django 模型引用 postgres 外部表 (clickhouse_fdw)

database - 如果 postgres 中的语句抛出错误