Просто используйте Query Builders !
Почему мы должны использовать Query Builders для большого количества записей вместо Eloquent?!
Вот причина:
Query Builder так быстрее , чем Eloquent:
Сравнение (Eloquent и Query Builder):
Для вставки 1000 строк в простую таблицу Eloquent требуется 1,2 секунды, и в этом случае для фасадов БД требуется всего 800 миль (мс).
Еще одно сравнение:
Среднее время отклика Eloquent ORM
Joins | Average (ms)
------+-------------
1 | 162,2
3 | 1002,7
4 | 1540,0
Result of select operation average response time for Eloquent ORM
Среднее время ответа SQL
Joins | Average (ms)
------+-------------
1 | 116,4
3 | 130,6
4 | 155,2
Result of select operation average response time for Raw SQL
Для получения дополнительной информации: Laravel Eloquent vs Query Builder
Отредактировано:
Ваш код должен быть:
$journal = DB::table('journals')->where('issn', $this->issn)->first();
И тогда для использования коллекции (простой способ):
$journal = Collection::make($journal); //For use Collection Methods
$collection = $journal->get("outputs");//Changed
$collectionUnique = $collection->unique('doi');
$collectionDupes = $collection->diff($collectionUnique);
dd('Total Articles '.$this->getTotal(), 'Total Articles '.count($collection));
Лучшая производительность:
Используйте запросы и Query Builder вместо коллекций. Потому что операции в SQL часто выполняются быстрее.
Пожалуйста, сравните время для вашего последнего кода и этого кода, и, пожалуйста, дайте мне знать в комментариях :)