• ベストアンサー

テーブル結合の方法でのパフォーマンス

テーブルを結合する順番でパフォーマンスが違ってくるものなんでしょうか。 FROM aaa, bbb aとbの順番を入れ替えるだけでパフォーマンスが変ることってあるんですかね。 また、カンマ(,)で結合を指定するよりSTRAIGHT_JOIN指定したほうが速いとか。 SELECT aaa.x, bbb.y FROM aaa, bbb; SELECT aaa.x, bbb.y FROM aaa STRAIGHT_JOIN bbb; おねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mooboogie
  • ベストアンサー率68% (28/41)
回答No.2

一般論っていうことで書きます。 結局のところ、ヒントやオプティマイザ次第ということでしょう。 Oracleのルールベースだと、外側から結合したと思うんで、最後に小さいテーブル名を入れる。 (ex. from 大、中、小) MircroSoftや、Oracleのコストベースだと自動的に最適化されますね。 MySQLの場合だと、joinしていく場合だと、先に書いた方。 カンマで(?)結合する場合は、Where句で結合条件を書きますけど、この場合はどうなんだろう? カッコで括れば良いよな気も。お試しください。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

そもそも SELECT aaa.x, bbb.y FROM aaa, bbb; ってどういう状況なのでしょうか? aaaとbbbに関連性がないのであれば結合する意味がないのでは? とりあえず具体的にはexplainで結合の効率性がみられると思いますので その状況がかわらないければ、理論的にはスピードは同等かと。