web-dev-qa-db-ja.com

内部結合とデカルト積のパフォーマンス

重複の可能性:
明示的SQL結合と暗黙的SQL結合

のパフォーマンスの違いを知りたい

select * from A,B,C where A.x = B.y and B.y = C.z

そして

select * from A INNER JOIN B on A.x = B.y INNER JOIN C on B.y = C.z

基本的に、内部結合がデカルト積よりも優れているかどうかを知りたいですか?また、内部結合では、デカルト積は内部で実行されますか?

14
nishantv

まず、これら2つの操作は2つの異なる目的のためのものですが、デカルト積は、あるテーブルの各行を別のテーブルの各行に結合することによって作成された結果を提供します。一方、内部結合(単純結合と呼ばれることもあります)は、結合条件を満たす行のみを返す2つ以上のテーブルの結合です。
ここであなたが書いたものに来ます:
デカルト積の場合最初にA、B、Cで構成されるテーブルが作成され、その後、与えられた条件に基づいて結果が得られます。しかし、ご覧のとおり、それは重いプロセスです。
一方、内部結合は、指定された条件を満たす実際の結果のみを選択します。したがって、最終結果を達成するためのより良いソリューションです。
1つ目はSQL言語の乱用です。

2
user1909647