2016-11-25 4 views
0

私は15,00,000以上の行を持つmd_membersテーブルを持っています...より良いパフォーマンスを得るにはjoinキーワード/ joinキーワードなしのクエリJoinキーワードまたはJoinキーワードなしでこのクエリのどちらが良いですか

Select 
    mem_fname 
    ,mem_lname 
    ,mem_mobile 
    ,mem_email 
    ,wda_first_login 
    ,a.updated_on as wda_last_login 
From wda_article_log as a,md_members as b 
where b.mem_id=a.mem_id and a.article_type=1 and b.wda_status=1` 
+0

MySQL Explainコマンドの戻り値を見ましたか? – Fang

+0

私のSQLがどう動くかわかりませんが、そのようなクエリのためにMS Sqlが内部結合を使用して実行計画を作成すると言った人がいます。しかし、明示的にインナー・ジョインを提供すると、ジョインを使用して、より読みやすくなります。 –

+0

良いインデックスで最高のパフォーマンスが得られると思います(少なくとも両方のテーブルのmem_idに - もし主キーではない - そしてたぶんarticle_typeやwda_status) – Seb

答えて

2

明示的なinner joinとカンマ構文は、パフォーマンスに関して同等です。両方のバージョンのexplainの出力を確認すると、同じクエリプランが生成されます。

これらの演算子の優先順位には違いがあります。したがって、それらを混在させると厄介な驚きが生じるかもしれませんが、質問のクエリではそうではありません。

明示的にinner joinを暗黙的に使用する理由は、結合条件とフィルタリング条件が互いに分離されているため、コードが読みやすくなります。

+0

ありがとう.. @Shadow – arun

関連する問題