본문으로 건너뛰기

enable_hashjoin

버전기본값context타입
14onuserboolean
15onuserboolean
16onuserboolean
17onuserboolean
18onuserboolean
19onuserboolean

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 문서