2013-02-13 4 views
1

는 그 다음ON 절의 두 위치 : 어느 것이 더 빠릅니까?

select ... 
join table1 
join table2 
on condition1 
and condition2 

당신이 임시 테이블이 작은 계속이 있기 때문에 주어진이 방법

select ... 
join table1 
on condition1 
join table2 
on condition2 

을 선택 가입 빠를까요?

(우리가 가정하자. 조건 1은 표 2와 아무 상관이있다) 이론적으로

+0

(죄송합니다, 당신이 ... 더 구체적으로 우리를 공급하지 않으면 더 구체적으로하기 어렵다) 그들은 다르다. 조건은 테이블을 조인하는 데 사용되므로 '조건 1'은 필터 일뿐입니다. – Kermit

+0

SQL이 꺼져 있습니다. 테이블 앞뒤에 테이블이 없으면 JOIN을 사용할 수 없습니다. 두 가지 예 모두 잘못되었습니다. – mjuarez

+0

@mjuarez 설명을 위해 생략했다고 생각합니다. – Kermit

답변

2

, 필터 조건은 더 잘 수행 할 수있다, 즉, "가능한 한 빨리"옵션 1 을 명시해야합니다.

실제로 대부분의 경우 SQL 구문 분석기는 두 버전을 동일한 실행 계획으로 최적화합니다. 즉, 조건이 실제로 왜곡되지 않는 한 table1 또는 table2은 실제로 하위 쿼리입니다.

당신은 놀 실행 계획을 확인하는 실제 쿼리가있는 경우 : EXPLAIN [your query here]

관련 문제