我正在使用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
    }
});


注意:我改用了雄辩的查询生成器。那是因为查询生成器比雄辩的更快。

09-25 17:28