3
JOIN条件とWHERE条件の実行に違いはありますか?
これら2つのクエリ例の間にパフォーマンスの違いはありますか? クエリ1: select count(*) from table1 a join table2 b on b.key_col=a.key_col where b.tag = 'Y' クエリ2。 select count(*) from table1 a join table2 b on b.key_col=a.key_col and b.tag = 'Y' 唯一の違いは補足条件の配置であることに注意してください。最初はWHERE句を使用し、2番目は条件をON句に追加します。 Teradataシステムでこれらのクエリを実行すると、Explainプランは同一であり、JOINステップはそれぞれの場合に追加の条件を示します。しかし、MySQLに関するこのSOの質問では、回答の1つはWHERE、結合が行われた後に処理が行われるため、2番目のスタイルが好ましいことを示唆しています。 このようなクエリをコーディングする際に従うべき一般的なルールはありますか?データベースに明らかに影響を与えないため、プラットフォームに依存する必要があると思いますが、おそらくそれはTeradataの単なる機能です。また、プラットフォームに依存する場合は、いくつかのドキュメントリファレンスを入手してください。何を探すべきか本当に分かりません。