Laravel с () медленно - PullRequest
       4

Laravel с () медленно

0 голосов
/ 11 мая 2018

У меня проблема с тем, что у меня есть только около 5000 строк, которые я хочу загрузить с нетерпеливыми отношениями, а выполнение запроса занимает 5-10 секунд.Это приложение быстро получит до 200 тыс. Строк в следующем месяце, поэтому вы можете понять, почему это большая проблема.

Вот мой код:

$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

Все эти отношения правильно установлены в модели:

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.

Зачем загружаться 5-10 секунд, если у меня в таблице Lead всего около 5000 строк и она тоже ограничена?Это проблема, связанная с Laravel, проблема с Laravel Datatables, или я что-то не так делаю?

1 Ответ

0 голосов
/ 11 мая 2018

ОК, я понял это.Удаление ->get() фактически позволяет пакету datatables выполнять разбиение на страницы, а не повторять каждый отдельный результат.

Именно это и вызывало медлительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...