나는과 같이 가입 수행하는 것이 (항상) 인 경우 join
그래서 난 궁금 where
전에 수행되도록 좋은 생각을 읽어 : 대신 평소먼저 별칭이 지정된 테이블에 관련 행을 선택하여 빠르게 결합 하시겠습니까?
SELECT * FROM tbl_1 t1 JOIN tbl_2 t2 USING (joinable_field)
WHERE t1.field = 'the_value'
나는과 같이 가입 수행하는 것이 (항상) 인 경우 join
그래서 난 궁금 where
전에 수행되도록 좋은 생각을 읽어 : 대신 평소먼저 별칭이 지정된 테이블에 관련 행을 선택하여 빠르게 결합 하시겠습니까?
SELECT * FROM tbl_1 t1 JOIN tbl_2 t2 USING (joinable_field)
WHERE t1.field = 'the_value'
이렇게하면 실행 및 평가 순서가 제한됩니다. t
을 먼저 작성해야하며 (아마도 "즉시", 아마도 물리적으로 디스크에), tbl_2
이 합류해야합니다.
구체적인 경우에 이것은 상처를주지 않아야합니다. 그러나 나는 이익도 볼 수 없다.
의
SELECT * FROM
(SELECT * FROM tbl_1 WHERE field = 'the_value') t
JOIN tbl_2 USING (joinable_field)
을 어디서 읽었 니? JOIN
은 WHERE
전에 수행되지 않습니다. 결과는 과 같이 반환됩니다. Where가 Join 전에 수행됩니다. 쿼리 최적화 프로그램은 실행 경로가 가장 적합한 경로를 자유롭게 선택할 수 있습니다.
이 조언에는 매우 복잡한 쿼리 및/또는 아주 좋은 최적화 도구가있는 값이있을 수 있습니다.