Laravel 无法获取超过 15k 条记录
Laravel cannot get more than 15k records
我有一个非常简单的查询来从数据库中获取记录:
\DB::table("table")->get();
当我尝试从数据库中获取超过 ±145000 条记录时,我得到:
500 server error
.
代码如下:
\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
}
});
我有一个非常简单的查询来从数据库中获取记录:
\DB::table("table")->get();
当我尝试从数据库中获取超过 ±145000 条记录时,我得到:
500 server error
.
代码如下:
\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
}
});