Php 拉威尔带()慢

Php 拉威尔带()慢,php,laravel,performance,eloquent,Php,Laravel,Performance,Eloquent,我遇到了一个问题,我只有大约5000行要加载渴望的关系,查询需要5-10秒才能完成。这个应用程序在接下来的一个月内将很快达到200000行,因此您可以了解这是一个大问题的原因 这是我的密码: $leads = Lead::with(['vertical', 'website', 'source', 'agent', 'assign', 'assign.buyer', 'returns'])->get(); $datatable = datatables()->of($leads);

我遇到了一个问题,我只有大约5000行要加载渴望的关系,查询需要5-10秒才能完成。这个应用程序在接下来的一个月内将很快达到200000行,因此您可以了解这是一个大问题的原因

这是我的密码:

$leads = Lead::with(['vertical', 'website', 'source', 'agent', 'assign', 'assign.buyer', 'returns'])->get();
$datatable = datatables()->of($leads);
dd($datatable );
它使用了Laravel Datatables插件,该插件只为查询添加分页限制-

所有这些关系都在模型中正确设置:

public function vertical()
{
    return $this->belongsTo('App\Vertical');
}

public function website()
{
    return $this->belongsTo('App\Website');
}

public function source()
{
    return $this->belongsTo('App\Source');
}

public function agent()
{
    return $this->belongsTo('App\Agent');
}

public function assign()
{
    return $this->hasOne('App\Assign');
}

public function returns()
{
    return $this->hasMany('App\AssignReturn');
}
assign.buyer
关系也在
assign
模型中正确设置


当我在
Lead
表中只有大约5000行并且它也受到限制时,为什么要花5-10秒来加载?这是一个与Laravel相关的问题,Laravel数据表问题,还是我做错了什么?

好的,我知道了。删除
->get()
实际上允许datatables包执行分页,而不是遍历每个结果


这就是造成速度慢的原因。

好的,我找到了答案。删除
->get()
实际上允许datatables包执行分页,而不是遍历每个结果


这就是导致速度缓慢的原因。

为了加快速度,您还可以在引用的db ID上添加db索引,如果您还没有这样做……为了加快速度,您还可以在引用的db ID上添加db索引,如果您还没有这样做。。。