2017-05-17 17 views
0

満足度の高い回答がないと正しく閉じられていないと思われるので、この質問を再度お聞きします。 元質問: テーブルAの数がかなり少ない大規模なデータセットを扱う場合行とBを比較すると、表AとB、AとBをAと結合するときに違いがありますか?したがって A JOIN B vs B JOIN AAジョインB対BジョインAの違い

+0

あなたの質問に記載されているものよりも、そのようなクエリのパフォーマンスに影響を与えるものが多すぎるため、広範に閉鎖されている可能性が最も高いです。 IOW、そう単純ではありません。 –

答えて

1

参加するので、論理的には差

0

はいがない、両方のテーブルから一致するレコードを取得します。大きな違いがあります。 通常のJOINを実行すると、MySQLは2つのテーブルを結合する順序を自動的に検出しようとします。しかし、時々、それが行くことを決める方法は最高ではありません。これは、大きなテーブルにインデックスがあり、小さなテーブルがない(またはtempTableである)場合に特に当てはまります。 MySQLでは、索引付けされていない表を主表として使用することよりも索引を使用する傾向があります。 最近、私は数秒かかるクエリを持っていました。 AがBIGで索引付けされていてBが小さいA JOIN Bのケースでした。 Aを右ジョイントBに更新すると、パフォーマンスが1秒未満に改善されました。

+0

あなたの質問は 'JOIN'でした。この答えは、索引および/または 'RIGHT'事項ではなく、表の指定された順序のために照会が異なる方法で実行されるとは言いません。それは別の問題です。 –

+0

そして、オプティマイザにはインデックスなどのガイドラインがありますが、「A JOIN B」と「B JOIN A」は含まれていません。 –

関連する問題