2017-05-28 5 views
1

Jetzt gibt es 2 Möglichkeiten von Laravel Database zu bekommen. Und ich möchte wissen, welches effizienter ist.in Laravel DB, welche von mit Zählung vs erhalten ohne Zählung ist effizienter?

1. Setzen Sie sich mit Graf

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

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

2. Sie direkt

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

ich nicht PHP MySQL Zählfunktion wissen so schnell wert ist, zu verwenden.

Bitte lassen Sie es mich wissen.

Antwort

2

Die zweite ist besser. Im ersten Fall erstellen Sie 2 Abfragen, die Sie in der Datenbank auslösen. Wenn es Beziehungen gibt, wird Laravel nicht versuchen, sie zu laden, wenn es keine Ergebnisse gibt.

+0

Dank mimo, Can Sie erklären mehr im Detail? – Alex

1

Die effizientere Art und Weise, wenn die Antwort existiert, um zu sehen ist exists zu verwenden, da wir bestimmen, wenn die Zeilen für die Abfrage tatsächlich existieren, bevor wir tatsächlich in die Sammlung geladen, zum Beispiel:

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

Danke jycr753, Denkst du, zählen oder existieren ist wirklich notwendig? – Alex

+0

Ich benutze existiert, wenn ich eine Bedingung hinzufügen muss, dass es nicht hinzugefügt werden kann, während Sie 'wenn' verwenden. Alles hängt von dem Programm ab, das Sie schreiben – jycr753

+0

Ich denke, ohne count() oder exists(), get() vielleicht funktioniert es gut. Bitte lassen Sie mich wissen, dass es richtig oder falsch ist. – Alex