2011-10-25 18 views
0

に参加します。どこにインデックスを置いて最適なものにするか(customor_idとbadge_idのどちらか)、またはカバーする必要がありますか(これは決してありません)?mysqlのは、私は2つのテーブルを持っているクエリとインデックス

+0

唯一の実際の答えは、EXPLAIN PLANを見てさまざまなインデックス(通常と同様)をテストし、より多くのデータを取得する際にインデックスの使用状況を確認する必要があることです(IE:1万行に近づいています) –

答えて

0

検索したり参加しているフィールドにインデックスを使用する傾向があります。

選択したクエリを見て、ONフィールドとWHEREフィールドがインデックス候補の候補になります。

インデックスの数が多いほど、一般的に選択肢が高速になりますが、インサートの速度が遅くなることに注意してください。 トレードオフがあるので、そのためだけに索引を入れないでください。

クエリでEXPLAINを使用すると、クエリプランと使用されているインデックスが表示されます。これは、インデックスの配置先を選択する際に役立ちます

+0

badge_idのバッジをインデックス化しますが、同じbtree(一緒に)のbadge_idとcustomer_idにインデックスを付けることになります。または、別々にすることもできますし、 where節のほとんどの部分は正しいのでしょうか? – re1man

関連する問題