【发布时间】:2019-10-11 22:53:17
【问题描述】:
我正在尝试查询大量数据(40K 记录),并计划在未来查询更大的数据集。 Eloquent 似乎需要很长时间才能加载这些数据。我想知道是否有更快的方法来处理这些数据。我正在尝试查看我的数据的有效性,因此检查是否所有字段都为空。
我使用了常规的 Eloquent 调用。我不认为分块数据是合适的,因为我不打算以任何方式修改数据。我争论过是否经常运行一项工作并调用该工作的结果可能是一种更好的方法。
$journal = Journal::where('issn', $this->issn)->first();
$collection = $journal->outputs;
$collectionUnique = $collection->unique('doi');
$collectionDupes = $collection->diff($collectionUnique);
dd('Total Articles '.$this->getTotal(), 'Total Articles '.count($collection));
【问题讨论】:
-
您的表是否设置了索引和外键?我最近遇到了类似的问题,然后发现我的表中缺少索引,因此请求需要很长时间。
-
我有索引和外键。
-
你能避免使用 Eloquent 并使用查询构建器实现 unique() 和 diff() 吗?
标签: laravel performance eloquent