집 >데이터 베이스 >MySQL 튜토리얼 >JOIN 쿼리의 WHERE 절과 ON 절: 최적의 성능을 위해 언제 어느 절을 사용해야 합니까?
JOIN 쿼리의 WHERE 절과 ON 비교: 성능에 미치는 영향
T-SQL에서 JOIN 쿼리를 사용할 때 다음 중 하나를 선택하는 것이 일반적입니다. WHERE 절이나 ON 절에 필터링 조건을 배치합니다. 두 접근 방식 모두 동일한 결과 집합을 생성할 수 있지만 고려해야 할 미묘한 성능 차이가 있습니다.
구체적으로 다음 쿼리를 살펴보겠습니다.
SELECT * FROM Foo f INNER JOIN Bar b ON (b.BarId = f.BarId); WHERE b.IsApproved = 1;
비교:
SELECT * FROM Foo f INNER JOIN Bar b ON (b.IsApproved = 1) AND (b.BarId = f.BarId);
두 쿼리 모두 동일한 행 집합을 반환하지만 성능 특성은 다릅니다.
일반적으로 필터를 ON 절은 다음과 같은 이유로 선호됩니다.
그러나 WHERE 절에 필터를 배치하는 것이 필수:
SELECT * FROM Foo f LEFT OUTER JOIN Bar b ON (b.BarId = f.BarId) WHERE (b.IsApproved IS NULL OR b.IsApproved = 1);
결론:
성능이 중요한 경우 배치를 고려하세요. ON 절의 필터링 조건을 사용하여 조인 작업을 최적화하고 결과 집합 크기를 줄입니다. 외부 조인 또는 OPTIONAL 필터링의 경우 WHERE 절을 사용하여 원하는 필터링을 구현해야 합니다.
위 내용은 JOIN 쿼리의 WHERE 절과 ON 절: 최적의 성능을 위해 언제 어느 절을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!