해시 왼쪽 외부 조인에 대한 알고리즘을 알고 오른쪽 테이블에 해시 테이블을 작성한 다음 왼쪽 테이블을 반복하고 해시 테이블에서 일치하는 항목을 검색하면 전체 외부 조인은 어떻게 작동합니까? 왼쪽 테이블의 값을 스캔 한 후에도 왼쪽 테이블과 일치하지 않는 오른쪽 테이블에 튜플을 가져 오는 방법이 필요합니다.해시 전체 외부 조인은 어떻게 작동합니까?
1
A
답변
1
프로브 레코드를 반복하면서 어떤 오른쪽 튜플이 빌드 테이블에서 일치하는 것을 기록했는지 기록합니다. 일치하는 각각에 대해 부울을 true로 설정하면됩니다. 알고리즘의 마지막 단계에서 빌드 테이블을 스캔하고 이전에 일치하지 않은 모든 튜플을 출력합니다.
알고있는 한 RDBMS에서 사용되지 않는 대체 전략이 있습니다. 왼쪽 및 오른쪽 튜플의 결합 해시 테이블을 작성하십시오. 그 테이블을 해시 키에서 왼쪽 튜플 목록과 오른쪽 튜플 목록으로 매핑하십시오. 두 입력 테이블을 모두 반복하여 해시 테이블에 모든 튜플을 추가하여 해당 테이블을 작성하십시오. 모든 튜플이 소비 된 후 해시 테이블을 한 번 반복하여 등호 그룹을 출력합니다 (모든 왼쪽 튜플 또는 모든 오른쪽 튜플 또는 등호 그룹의 모든 왼쪽 튜플과 모든 오른쪽 튜플의 교차 곱).
후자의 알고리즘은 클라이언트 작업과 같은 메모리 작업 부하에 유용합니다. 전자는 대단히 (또는 예측할 수 없을 정도로) 큰 프로브 입력에 적합하므로 RDBMS는이를 사용합니다.
관련 문제
- 1. 완전 외부 조인은 어떻게 사용할 수 있습니까?
- 2. SQL 왼쪽 외부 조인은 전체 테이블을 제공하지 않습니다.
- 3. 왼쪽 외부 조인은 언제 사용합니까?
- 4. 전체 외부 조인을 사용하지 않고 전체 외부 조인을 수행하는 방법
- 5. 어떻게 외부 ID로 upsert 작동합니까?
- 6. 외부 조인은 3 개의 테이블을 기반으로합니다.
- 7. 왼쪽 외부 조인은 왼쪽 조인과 동일한 작업입니까?
- 8. MySQL의 오른쪽 외부 조인은 100 % 작동하지
- 9. NSData의 해시 메서드 구현은 어떻게 작동합니까?
- 10. SQL에서 다음 조인은 어떻게 수행합니까?
- 11. 해시 가입이 필요합니다 전체 테이블 스캔
- 12. 루프 내의 외부 변수는 어떻게 람다에서 작동합니까?
- 13. 외부 DLL에 연결하는 것이 어떻게 작동합니까?
- 14. 이 다중 테이블 조인은 어떻게 수행되어야합니까?
- 15. 해시 테이블의 삽입 및 삭제 논리는 어떻게 작동합니까?
- 16. 해시 프로세스가 사전 <TKey, TValue>에서 어떻게 작동합니까?
- 17. 어떻게 작동합니까?
- 18. 해시 후 전체 URL 빼기
- 19. 전체 해시 테이블을 다시 해쉬해야합니까?
- 20. 내부 조인은 중복을 제외합니까?
- 21. PHP에서 클로저가 어떻게 작동합니까?
- 22. 플렉스 전체 화면 외부
- 23. java의 hashCode() 메소드는 어떻게 작동합니까?
- 24. 이 통계에서이 조인은 어떻게합니까?
- 25. 어떻게 Rails의 salt가 작동합니까? has_secure_password
- 26. traceroute는 어떻게 작동합니까?
- 27. 클로저는 어떻게 작동합니까?
- 28. flexigrid는 어떻게 배열과 작동합니까?
- 29. DOM에서 파일로드는 어떻게 작동합니까?
- 30. stringstream은 어떻게 내부적으로 작동합니까?