首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拉勒维尔()慢

拉勒维尔()慢
EN

Stack Overflow用户
提问于 2018-05-10 22:24:28
回答 1查看 675关注 0票数 0

我遇到了一个问题,我只想加载大约5,000行,并且这个查询需要5-10秒的时间才能完成。这个应用程序在下个月将很快达到200 k行,所以您可以看到这是一个大问题的原因。

这是我的代码:

代码语言:javascript
运行
复制
$leads = Lead::with(['vertical', 'website', 'source', 'agent', 'assign', 'assign.buyer', 'returns'])->get();
$datatable = datatables()->of($leads);
dd($datatable );

它使用了Laravel插件,它简单地为查询- https://github.com/yajra/laravel-datatables增加了分页限制。

所有这些关系都正确地建立在模型中:

代码语言:javascript
运行
复制
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表中只有大约5,000行时,为什么要花5-10秒来加载,而且它也是有限的呢?这是与Laravel相关的问题,是Laravel数据问题,还是我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-10 22:31:47

好吧我想明白了。删除->get()实际上允许数据包执行分页,而不是迭代每一个结果。

这就是导致缓慢的原因。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50282340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档