geqo_generations
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | — | user | integer |
| 15 | — | user | integer |
| 16 | — | user | integer |
| 17 | — | user | integer |
| 18 | — | user | integer |
| 19 | — | user | integer |
GEQO가 수행하는 세대(generation) 수, 즉 유전 알고리즘의 반복 횟수를 정한다. 기본값은 0이다.
PostgreSQL은 FROM 항목이 많은 쿼리에서 가능한 join 순서를 전부 따져보는 대신 genetic query optimizer(GEQO)를 사용한다. GEQO는 유전 알고리즘으로 join 순서 탐색 공간을 확률적으로 탐색해, 최적 plan 보장을 포기하는 대신 planning 시간을 억제한다. 세대를 거듭할수록 더 나은 join 순서 후보가 살아남을 기회가 늘어나는 대신 planning 시간이 길어진다.
최소값은 1이고 유용한 값은 pool 크기와 같은 범위다. 기본값 0으로 두면 geqo_pool_size를 바탕으로 적절한 값이 자동으로 정해진다. geqo_pool_size와 마찬가지로 직접 설정하기보다 geqo_effort를 통해 간접 조정하는 것이 일반적이다.
출처: PostgreSQL 18 문서