geqo_effort
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | five | user | integer |
| 15 | five | user | integer |
| 16 | five | user | integer |
| 17 | five | user | integer |
| 18 | five | user | integer |
| 19 | five | user | integer |
GEQO에서 planning 시간과 plan 품질 사이의 trade-off를 정한다. 1부터 10까지의 정수이며 기본값은 5다.
PostgreSQL은 FROM 항목이 많은 쿼리에서 가능한 join 순서를 전부 따져보는 대신 genetic query optimizer(GEQO)를 사용한다. GEQO는 유전 알고리즘으로 join 순서 탐색 공간을 확률적으로 탐색해, 최적 plan 보장을 포기하는 대신 planning 시간을 억제한다. geqo_effort를 키우면 planning에 더 많은 시간을 쓰는 대신 효율적인 plan을 찾을 확률이 올라가고, 줄이면 그 반대다.
이 파라미터가 직접 뭔가를 하는 것은 아니다. geqo_pool_size, geqo_generations 등 GEQO 동작에 실제로 영향을 주는 다른 파라미터들의 기본값을 계산하는 데만 쓰인다. 세밀하게 제어하고 싶다면 그 파라미터들을 직접 설정해도 된다.
출처: PostgreSQL 18 문서