2016-09-05 15 views
1

の長さの時間を削減カテゴリ。私は、LaravelとMYSQLを使って、「レストラン」のカテゴリを持つすべてのビジネスを見つけようとしています。私が使用していますPHPのMYSQL、私は2つのテーブルを持っているクエリ

コードは以下の通りです:

$businesses = Business::join('category', 'category.id', '=', 'businesses.category') 
       ->where('category.name', '=', $cat)->get(); 

どの、$cat = 'レストラン' のバックもたらします:3183結果。

問題が最も低いのは、結果を見つけるのに8.9秒から12秒かかることです。誰かが方法を提案することができますか、またはこのクエリが実行されるのにかかる時間を改善できる間違っている場所ですか?

答えて

2

category.idbusinesses.categoryに索引があることを確認してください。結合速度を向上させるにはcategory.nameを使用してください。

+0

ありがとうございます!インデックスを使ってテーブルを更新する方法についてアドバイスをいただけますか? – Phorce

+0

http://stackoverflow.com/questions/3002605/how-do-i-add-indexes-to-mysql-tablesをご覧ください。また、テーブルにインデックスを追加すると、テーブルが大きくなり、更新が遅くなることにも注意してください。それはすべてバランスの取れた行為です。 – RegularlyScheduledProgramming

関連する問題