enable_hashjoin
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | on | user | boolean |
| 15 | on | user | boolean |
| 16 | on | user | boolean |
| 17 | on | user | boolean |
| 18 | on | user | boolean |
| 19 | on | user | boolean |
planner가 hash join plan을 후보로 고려할지 정한다. 기본값은 on이다.
hash join은 한쪽 입력(보통 작은 쪽)으로 hash table을 만들고 다른 쪽 입력을 훑으며 대조하는 방식이다. 등호 조건(equi-join)에서 큰 테이블끼리 join할 때 대체로 가장 빠른 선택지이며 입력 정렬도 필요 없다. 다만 hash table이 work_mem × hash_mem_multiplier 한도를 넘으면 batch로 쪼개 디스크를 오가므로 메모리 설정의 영향을 크게 받는다.
운영 노트: off는 진단 도구다. planner가 hash join을 고른 쿼리에서 세션 단위로 끄면 merge join이나 nested loop로 우회한 plan의 cost와 실제 실행 시간을 비교할 수 있다. 전역으로 끄는 것은 피한다.
출처: PostgreSQL 18 문서