php - 使用 eloquent 逐一检索大量行
问题描述
我需要从 MySQL 数据库中检索大量行,我不能将它们全部加载到变量中,因为它太大了。有没有办法像使用雄辩的查询一样加载行 pdo?
$data = $pdo->query("SELECT * FROM users")->fetchAll();
foreach ($data as $row) {
echo $row['name']."<br />\n";
}
我想使用 eloquent 查询生成器做同样的事情
解决方案
使用分块结果chunk()
是您的最佳选择。
DB::table('users')->chunk(100, function ($users) {
foreach ($users as $user) {
// process data
return false; // break if needed
}
});
使用 Eloquent 也可以达到同样的效果。
User::chunk(100, function ($users) {
...
}
推荐阅读
- c# - Swashbuckle 中默认的 Swagger UI URL 是什么?
- c# - 作为 EntityFramework Core 中的字段的接口
- arrays - 我无法从数组中获取值
- search - SWITCH True Power BI 中的多个列和条件
- linux - sed/awk | 第二个斜杠后的一位数到两位数(零)
- nexus3 - Nexus3 清理策略因 NullPointerException 而失败
- sql - 如何在 SQL 中选择具有循环条件的记录
- python - MySQL 语句在不应该使用 fetchone() 时返回无
- php - 用php显示最多的部分
- jdbc - GCP BigQuery 数据传输服务中的错误:找不到适合 jdbc:redshift:// 的驱动程序