我正在使用 Laravel 框架。在我的数据库记录表中有超过 400000 行。现在我想使用某些条件检索记录 逻辑: 需要匹配服务id 需要匹配状态
但我的应用程序无法检索数据(无法处理此请求)。 我正在使用这个查询
foreach ($ven as $ven){
$data = $ven->data;
$record = $data ->records()->where('status','success')->get();
}
我的状态列已添加到索引中。
需要建议
最佳答案
首先,您需要将状态保存为 int 形式而不是字符串。它将帮助您轻松过滤记录。
并使用chunk
来处理大型数据集。我想 $ven
是用于 field 的。因此,请按照下面的代码操作。
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
}
});
注意:我使用查询生成器而不是 eloquent。这是因为查询生成器比 Eloquent 更快。
关于php - 无法从大型表行中检索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51158302/