geqo
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | — | user | boolean |
| 15 | — | user | boolean |
| 16 | — | user | boolean |
| 17 | — | user | boolean |
| 18 | — | user | boolean |
| 19 | — | user | boolean |
genetic query optimization 사용 여부를 정한다. 기본값은 on이다.
PostgreSQL은 FROM 항목이 많은 쿼리에서 가능한 join 순서를 전부 따져보는 대신 genetic query optimizer(GEQO)를 사용한다. GEQO는 유전 알고리즘으로 join 순서 탐색 공간을 확률적으로 탐색해, 최적 plan 보장을 포기하는 대신 planning 시간을 억제한다. join 대상이 수십 개에 이르는 쿼리에서 exhaustive 탐색은 plan 실행 손해보다 planning 자체가 더 오래 걸릴 수 있고, GEQO는 그런 상황의 안전장치 역할을 한다.
프로덕션에서 이 파라미터를 끄는 것은 권장되지 않는다. 끄면 FROM 항목이 많은 쿼리의 planning 시간이 통제 불능으로 길어질 수 있기 때문이다. GEQO가 언제 발동할지는 geqo_threshold로 더 세밀하게 제어할 수 있으므로, on/off보다는 임계값 조정이 올바른 손잡이다.
출처: PostgreSQL 18 문서