JOIN의 논리 모델

INNER JOIN은 모든 후보 조합 중 ON 조건이 참인 행 조합만 남기는 연산입니다.

관계 대수로는 카테시안 곱에 선택 조건을 적용한 결과로 이해할 수 있습니다. 다만 실제 DBMS가 항상 전체 곱을 먼저 만드는 것은 아닙니다.

1. 후보 조합

가능한 모든 행 쌍

user 1×order 101
user 1×order 102
user 2×order 101
user 2×order 102

조건이 없으면 모든 조합이 결과 후보가 됩니다.

2. 선택 조건

ON 조건으로 검사

1=1
1=1
21
21

조건이 참인 조합만 INNER JOIN 결과에 남습니다.

3. 실제 실행

옵티마이저가 효율적으로 찾음

Index Lookup일치 행
Hash Join일치 행
Merge Join일치 행

실행 계획은 전체 후보를 물리적으로 다 만들지 않도록 최적화될 수 있습니다.

논리

결과 의미를 설명할 때 카테시안 곱 모델이 유용합니다.

실행

실제 DBMS는 인덱스나 해시로 일치 행을 찾습니다.

위험

ON 조건 누락은 실제로 큰 카테시안 곱 결과를 만들 수 있습니다.