enable_mergejoin
| 버전 | 기본값 | 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가 merge join plan을 후보로 고려할지 정한다. 기본값은 on이다.
merge join은 양쪽 입력을 join key로 정렬한 뒤 나란히 훑으며 짝을 맞추는 방식이다. 양쪽 모두 인덱스 등으로 이미 정렬돼 있으면 추가 정렬 없이 대량 join을 안정적인 메모리 사용량으로 처리할 수 있어, 정렬된 큰 입력끼리의 join에서 강점이 있다. 정렬돼 있지 않으면 Sort 노드가 앞에 붙고 그 비용까지 함께 계산된다.
운영 노트: off는 진단 도구다. planner가 merge join을 고른 쿼리에서 세션 단위로 끄고 hash join 등 다른 방식의 plan과 EXPLAIN (ANALYZE)로 비교하는 용도로 쓴다. 전역으로 끄는 것은 피한다.
출처: PostgreSQL 18 문서