Laravel 获取不到超过 15k 条记录
问题:Laravel 获取不到超过 15k 条记录 我有一个非常简单的查询来从数据库中获取记录: \DB::table("table")->get(); 当我尝试从数据库中获取超过 ±145000 条记录时,我得到:500 server error。 代码如下: \DB::table("table")->take(14500)->get(); 虽然有效。当我尝试获得超过 15k 时,我会立即收到错
·
问题:Laravel 获取不到超过 15k 条记录
我有一个非常简单的查询来从数据库中获取记录:
\DB::table("table")->get();
当我尝试从数据库中获取超过 ±145000 条记录时,我得到:500 server error
。
代码如下:
\DB::table("table")->take(14500)->get();
虽然有效。当我尝试获得超过 15k 时,我会立即收到错误,而无需任何加载或更多信息。我也无法从日志中获取更多信息。奇怪的是,当我将那个代码写到 tinker 时——我可以得到所有的记录。 (与雄辩的作品相同)
解答
如果您检查错误日志,您很可能会看到以下内容:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
最好是块你的结果,而不是一次将它全部加载到内存中
\DB::table("table")->chunk(500, function($results) {
foreach($results as $result) {
do your thing
}
});
更多推荐
已为社区贡献19918条内容
所有评论(0)