2016-07-21 17 views
0

Ich bin neu bei Laravel und ich bin nicht sicher, ob ich etwas falsch mache, da meine Abfragen extrem lange dauern.Laravel 5 Abfragen wirklich langsam

Ich habe rund 35000 Datensätze, siehe unten ein Beispiel für eine Abfrage, die etwa 23 Sekunden dauert, um die Seite zu laden (siehe Screenshot unten).

Screenshot

Kann jemand auf meinen Fehler beraten oder besser meine DB abzufragen. Ich habe versucht Eloquent und es ein paar ms langsamer als eine DB :: Query.

$data3 = DB::table('toutcome') 

      ->where('CompletedDate', '>=', \Carbon\Carbon::now()->startOfMonth()) 
      ->join('tapplicant', 'tapplicant.AppID', '=', 'toutcome.AppID') 
      ->select(DB::raw('DATE_FORMAT(CompletedDate, "%d %M %Y") as CompletedDate, 
           SUM(AffID = "MW0050") as leadccount50, 
           SUM(AffID = "MW0051") as leadccount51, tapplicant.AppReference')) 
      ->groupBy(DB::raw('DATE_FORMAT(CompletedDate, "%d %M %Y")')) 
      ->get(); 
+0

Kennen Sie das Konzept von MySQL Query Cache. versuche es zu implementieren. Beim ersten Mal dauert es einige Zeit, bis das Programm ausgeführt wird, aber beim nächsten Aufruf derselben Abfrage wird es ca. 3x schneller ausgeführt –

Antwort

0

erstens verwandt ist, das klingt wirklich lang.

Die Abfragen sehen ziemlich detailliert aus, aber es sollte nicht länger als 1 Minute dauern.

Sie könnten versuchen, eloquent zu verwenden, aber dies wird nur ein wenig schneller als die rohen Abfragen sein.

Dinge, die Sie nicht erwähnt sind:

Ist dies ein lokaler Server oder Remote-Server? Wenn Sie einen Remote-Server verwenden, wäre meine Lösung, den "skip-name-resolve" in Ihrer my.ini/my.cnf unter mysqld zu verwenden und Ihre key_buffer_size zu aktualisieren.

Wenn dies die Geschwindigkeit nicht verbessert, sehen Sie sich vielleicht Ihre Ressourcen für diesen bestimmten Server an.

0

Haben Sie die rohe Abfrage direkt in der Datenbank getestet? Wenn die Abfrage ebenfalls langsam ist, können Sie versuchen, EXPLAIN zu verwenden, um zu ermitteln, wo Indizes hinzugefügt werden und wo sie neu geschrieben werden. Ohne zu wissen, wie Ihre Tabellen aussehen, meine erste Vermutung ist, dass die Verlangsamung mit der Gruppe von Teil