LarabelのDB速度の向上させたいです。
DBの回答が遅いです。
以下のような書き方をしていますが、以下のような書き方だとLeftjoinを全てのデータで行ってから検索するのでしょうか?
DBを連携して、ここのフィールドを検索して結果を出力したいです。
すみませんが、DB速度向上に向けて、アドバイスをご教授下さい。
PHP
1$listpart = DB::table('tableA') 2 ->leftJoin('tableB', 'tableA.FieldB', '=', 'tableB.FieldB') 3 ->leftJoin('tableC', 'tableA.FieldC', '=', 'tableC.FieldC') 4if(!empty($s_word)){ 5 $listpart->where('tableA.FieldName', 'LIKE', "%{$s_word}%") 6 ->orWhere('tableB.FieldName', 'LIKE', "%{$s_word}%") 7 ->orWhere('tableC.FieldName', 'LIKE', "%{$s_word}%"); 8} 9$listpart = $listpart->select('FieldA', 'FieldB', 'FieldC', 10 DB::raw('AVG(eva_val) as rate_avg'), DB::raw('MAX(name) as name' ) ) 11 ->groupBy('FieldA', 'FieldB', 'FieldC') 12 ->orderBy('tableA.updated_at', 'desc') 13 ->take(30) 14 ->get();
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/23 11:23