Laravel集数()花费的时间太长

问题描述 投票:0回答:1

我有一个联系人表和CONTACT_LIST表,CONTACT_LIST有很多联系人,联系人表中有一个IS_ACTIVE场。

enter image description here

要得到一个CONTACT_LIST我使用查询生成如下积极接触的次数:

$contact_list->contacts()->where('is_active', 1)->count();

如果联系人的数量太大查询时间太长。有没有实现这个更好的办法?

php laravel-5 eloquent
1个回答
0
投票

我可以看到你要优化你的要求的性能。

实现,你应该使用急切加载,让您的新的要求应该有如下:

$contactList = App\ContactList::with(['contacts' => function ($query) {
    $query->where('is_active', 1);
}])->count();

有关Laravel如何实现渴望加载更多信息,请查看文档的链接:eager-loading documentation

© www.soinside.com 2019 - 2024. All rights reserved.