2016-07-21 167 views
0

私はlaravelを初めて使っています。Laravel 5本当に遅いクエリ

私はおよそ35000のレコードを持っています。ページをロードするのに約23秒かかります(下記のスクリーンショットのリンクを参照)。

Screenshot

誰もが私のミスや私のDBを照会するためのより良い方法について助言することはできます。私はEloquentを試して、DB :: Queryよりも数ms遅いです。

$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

あなたはmysqlクエリキャッシュの概念を知っていますか?それを実装しようとする。最初に実行するには時間がかかりますが、次回同じクエリを呼び出すと、約3倍高速に実行されます –

答えて

0

まず、本当に長く聞こえます。

クエリは非常に詳細に見えますが、1分以上かかることはありません。

雄弁を使ってみることもできますが、これは生のクエリよりも少し早いでしょう。あなたが言及しなかった

物事は以下のとおりです。

これは、ローカルサーバーまたはリモートサーバーですか?リモートサーバを使用している場合、私の解決策はmysqldのmy.ini/my.cnfで "skip-name-resolve"を使用し、key_buffer_sizeを更新することです。

これでスピードが向上しない場合は、特定のサーバーのリソースを確認してください。

0

データベースで未加工のクエリを直接テストしましたか?クエリの実行速度が遅い場合は、EXPLAINを使用して、インデックスの追加先と書き換え先を見つけることができます。あなたのテーブルが私の最初の推測をどのように見ているのか分からずに、減速はグループごとにグループに関連しているということです。

関連する問題