重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

ご覧頂きありがとうございます。
今回の質問ですが、MySQLの表結合時の処理速度(負荷)についてお聞きします。

SELECT abcd.name, hoge.age
FROM abdc, hoge
WHERE abcd.id = hoge.id;

SELECT abcd.name, hoge.age
FROM abcd
LEFT JOIN hoge ON abcd.id = hoge.id;

上記のいわゆるJOINとJOIN(省略)?になりますが、どちらが処理速度的に優秀なのでしょうか?
可能であればどういった処理が走っているのかも御存じであれば教えて頂きたいです。

参考URLでも構いませんので、よろしくお願い致します。

A 回答 (1件)

今回の例ですと


「FROMにテーブルを列記する」のと「LEFT JOIN」で結合するのは、
あきらかにやっていることが違います。
なので処理速度の優劣を考える意味がありません。
もしやるならINNER JOINですね

実際abcdテーブルとhogeテーブルに適切なインデックスが設定されていれば
FROMだけで処理してもJOINしても負荷は変わらないはずです。
基本的にはEXPLAIN文でSQL文の効率化を検証することができます。

http://dev.mysql.com/doc/refman/5.1/ja/explain.h …

個人的にはFROMでテーブルの列記よりJOINする方が
依存関係が分かりやすく、またJOIN語のSQL文に対してWHEREで絞り込みを
したりできて便利なので使用頻度は多いです。
    • good
    • 0
この回答へのお礼

とても簡潔に分かりやすく説明して頂きありがとうございました。

お礼日時:2014/05/23 16:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す