복붙노트

[SQL] 사용 노조 또는 가입 - 빠른 [Closed]입니다 무엇

SQL

사용 노조 또는 가입 - 빠른 [Closed]입니다 무엇

당신은 테이블이 있다면 난 그냥 궁금 당신은 그것이 조인을 사용하는 것보다 더 효율적인 것 UNION을 ??

유사한 다른 테이블의 중첩 루프 검색을 할 수있는 노조 필요로 할 것이다 가입 것인가 - 나는 조인이 더 많은 열을 생성하지만,이 더 이론적 인 것을 알 수 있습니까?

해결법

  1. ==============================

    1.단순히 첫 번째 SELECT 문을 통과 한 다음 두 번째 SELECT 문을 구문 분석하고 출력 테이블의 마지막에 결과를 추가로 연합 (EU)은 빨라집니다.

    단순히 첫 번째 SELECT 문을 통과 한 다음 두 번째 SELECT 문을 구문 분석하고 출력 테이블의 마지막에 결과를 추가로 연합 (EU)은 빨라집니다.

    때문에 각각의 모든 행에 대해 일치하는 행을 검색, 따라서 더 많은 필요로 처리하는 다른 테이블에 일치하는 항목을 찾는 두 테이블의 각 행을 통해 갈 것입니다 가입.

    당신이 달성하려고했는지에 대한 충분한 것 같았다으로 연합, 나는 연합 (EU) 전체를 의미한다. 정상적인 조합이지만 일반적으로 더 빨리 다음에 가입하세요.

    나는 그에게 동의하지 않습니다. 기술적으로 여전히 순수한 연결보다 더 비싼 당신의 가입 좋은,는 "가입"입니다 아무리입니다 말하기. 내 블로그 codePERF [도트] 그물에 그것을 증명하기 위해 블로그 게시물을했다. 실제로 그들은이 완전히 다른 용도로 사용하고 당신의 색인이 오른쪽 작업에 적합한 도구를 사용하여 확인하기 위해 더 중요하다 말하기.

    기술적으로, 나는 내 블로그 게시물에서 가져온 다음이 실행 계획을 사용하여 요약 할 수 있다고 생각합니다 :

    실질적으로 클러스터 된 인덱스 조회에 차이를 말하는 것은 무시할 수있다 :

  2. ==============================

    2.가입 및 UNION은 두 개의 서로 다른 목적을 가지고있다. 선택 기준과 가능한 추가 열을 추가하기위한 목적으로 쿼리에 추가 테이블을 추가하는 데 사용됩니다 가입하세요. UNION은 같은 열이 두 가지 쿼리의 결과를 결합하는 데 사용됩니다. 더 효율적이다 묻는 것은하는 "한 덩어리의 빵"과 "송풍 바람이"더 "오렌지"의 요구와 같다.

    가입 및 UNION은 두 개의 서로 다른 목적을 가지고있다. 선택 기준과 가능한 추가 열을 추가하기위한 목적으로 쿼리에 추가 테이블을 추가하는 데 사용됩니다 가입하세요. UNION은 같은 열이 두 가지 쿼리의 결과를 결합하는 데 사용됩니다. 더 효율적이다 묻는 것은하는 "한 덩어리의 빵"과 "송풍 바람이"더 "오렌지"의 요구와 같다.

  3. ==============================

    3.죄송 파티를 중단하지만, 잘 작성된 빠른 노동 조합보다 것이다 가입.

    죄송 파티를 중단하지만, 잘 작성된 빠른 노동 조합보다 것이다 가입.

  4. ==============================

    4.하나의 SELECT는 테이블 당 하나의 인덱스보다 더 이상 사용하지 않습니다. 노동 조합은 노동 조합에 SELECT 당 더 이상의 인덱스를 사용하지 않습니다.

    하나의 SELECT는 테이블 당 하나의 인덱스보다 더 이상 사용하지 않습니다. 노동 조합은 노동 조합에 SELECT 당 더 이상의 인덱스를 사용하지 않습니다.

    노조 빠른 쿼리가 발생할 수 있습니다 인덱스를보다 효율적으로 사용하는 것입니다.

  5. from https://stackoverflow.com/questions/2309936/use-a-union-or-a-join-what-is-faster by cc-by-sa and MIT license