在Laravel数据库中,计数与不计数得到的效率更高?

时间:2017-05-28 20:35:10

标签: php mysql laravel count

现在有两种方法可以从Laravel数据库中获取。我想知道哪个更有效率。

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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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