한 테이블에는 있지만 다른 테이블에는 없는 행(\'NOT EXISTS\' 또는 \'LEFT JOIN\')을 선택하는 데 가장 적합한 접근 방식은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-26 12:01:02
원래의
181명이 탐색했습니다.

Which Approach is Best for Selecting Rows Present in One Table But Not Another:

효율적인 데이터 검색을 위해 "Mysql select where not in table" 최적화

동일한 기본 테이블을 사용하는 두 테이블(A와 B)을 처리하는 경우 키를 사용하면 A에는 있지만 B에는 없는 행을 선택하는 작업이 일반적으로 발생합니다. "NOT EXISTS" 절을 사용하는 표준 접근 방식은 성능 제한이 있습니다.

Not Exists vs. Left Join

당신이 언급한 "NOT EXISTS" 쿼리는 확인합니다. A의 각 행에 대해 B의 일치하는 행이 없기 때문입니다. 안티 조인(anti-join)이라고 알려진 이 프로세스는 대규모 데이터 세트의 경우 비효율적일 수 있습니다. 이와 대조적으로 제안된 왼쪽 조인 접근 방식은 A의 각 행에 대해 B.y 열에서 Null 값을 찾습니다. 이것이 더 효과적인 솔루션이 될 수 있습니다.

향상된 쿼리 표현식

그러나 왼쪽 조인 쿼리에 약간의 개선이 있을 수 있습니다.

SELECT A.*    
FROM A LEFT JOIN B ON A.x = B.y
WHERE B.y IS NULL
로그인 후 복사

테이블 A(A.*)에서 명시적으로 열만 선택하면 필요한 항목만 검색하여 쿼리를 최적화할 수 있습니다. data.

결론

"NOT EXISTS" 절은 소규모 데이터 세트에서는 여전히 실행 가능한 옵션이지만 향상된 쿼리 표현식을 사용하는 Left 조인 접근 방식은 대규모 데이터 세트에 더 나은 성능을 제공합니다. 데이터 볼륨. 이를 통해 테이블 ​​A에는 있지만 테이블 B에는 없는 행을 효율적으로 검색할 수 있습니다.

위 내용은 한 테이블에는 있지만 다른 테이블에는 없는 행(\'NOT EXISTS\' 또는 \'LEFT JOIN\')을 선택하는 데 가장 적합한 접근 방식은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!