enable_incremental_sort
| 버전 | 기본값 | 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가 incremental sort를 사용할지 정한다. 기본값은 on이다.
입력이 정렬 key의 앞부분(prefix)으로 이미 정렬돼 있을 때, 전체를 다시 정렬하는 대신 prefix 값이 같은 묶음 안에서 나머지 key만 정렬하는 방식이다. 예를 들어 컬럼 a 순서로 정렬된 index scan 출력에 ORDER BY a, b가 필요하면 a가 같은 구간별로 b만 정렬하면 된다. 전체 정렬보다 메모리를 적게 쓰고 첫 row를 빨리 내놓을 수 있어 LIMIT이 붙은 쿼리에서 특히 유리하다.
다만 prefix 그룹 크기 추정이 크게 빗나가면 전체 정렬보다 오히려 느려지는 경우도 있다.
운영 노트: off는 진단 용도다. Incremental Sort 노드가 낀 쿼리가 느릴 때 세션에서 끄고 일반 Sort plan과 EXPLAIN (ANALYZE)로 비교하면 incremental sort가 원인인지 확인할 수 있다.
출처: PostgreSQL 18 문서