2017-05-28 114 views
1

现在有两种方式从Laravel数据库中获取。我想知道哪个更有效。,哪一个得到计数vs没有计数更有效率?

1.获取具有计数

$cnt = \App\Models\Res_Times::where(...) 
    ->count(); 

if ($cnt > 0) { 
    $result = \App\Models\Res_Times::where(...) 
     ->get(); 
} 

2.获得直接

$result = \App\Models\Res_Times::where(...) 
    ->get(); 

我不知道PHP MySQL的计数功能是如此之快值得使用。

请让我知道。

回答

2

第二个比较好。在第一种情况下,您构建了2个查询,以启动数据库。如果有可能有关系,如果没有结果,laravel将不会尝试加载它们。

+0

得益于MIMO,CAN你详细解释一下吗? – Alex

1

的更有效的方法,如果响应存在是使用exists,因为我们确定的,如果确实存在用于查询的行之前,我们实际加载到集合,例如:

$result = \App\Models\Res_Times::where(...) 
if ($result->exists()) { 
    return $result->get(); 
} 
+0

谢谢jycr753,你认为数字还是存在真的需要吗? – Alex

+0

我使用存在,当我需要添加任何条件,它不能被添加,而使用'when' ..所有取决于您正在编写的程序 – jycr753

+0

我认为,没有count()或exists(),get()也许运作良好。请让我知道这是对还是错。 – Alex