我正在使用laravel框架。在我的数据库记录表中有超过400000行。现在我想使用某种条件来检索记录
逻辑:
需要匹配服务ID
需要匹配状态
但我的应用程序无法检索数据(无法处理此请求)。
我正在使用此查询
foreach ($ven as $ven){
$data = $ven->data;
$record = $data ->records()->where('status','success')->get();
}
我的状态列已添加到索引中。
需要建议
最佳答案
首先,您需要将状态保持为int形式而不是字符串形式。这将帮助您轻松过滤记录。
并使用chunk
处理大型数据集。我想$ven
用于场地。因此,请遵循以下代码。
DB::table('venues')
->select('venues.*', 'records.*')
->join('records', 'venues.id', '=', 'records.venue_id')
->orderBy('id')->chunk(1000, function($venues) {
foreach ($venues as $venue) {
// your logic
}
});
注意:我改用了雄辩的查询生成器。那是因为查询生成器比雄辩的更快。