cpu_tuple_cost
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 0 | user | string |
| 15 | 0 | user | string |
| 16 | 0 | user | string |
| 17 | 0 | user | string |
| 18 | 0 | user | string |
| 19 | 0 | user | string |
쿼리 실행 중 row 하나를 처리하는 비용을 planner가 얼마로 추정할지 정한다. 기본값은 0.01이다.
planner의 cost 모델은 sequential scan으로 disk page 하나를 읽는 비용(seq_page_cost = 1.0)을 기준 단위로 삼고, 나머지 비용 파라미터를 모두 그에 대한 상대값으로 해석한다. cpu_tuple_cost는 그중 scan이나 join이 row 하나를 꺼내 처리할 때마다 더해지는 CPU 비용을 담당한다. 이 값을 올리면 많은 row를 훑는 plan(대표적으로 sequential scan)의 추정 cost가 커져 planner가 적은 row만 다루는 index scan 쪽으로 기울고, 내리면 반대가 된다.
운영 노트: cpu_* 계열은 단독으로 조정하는 일이 드물다. scan 방식 선택을 바꾸고 싶다면 보통
random_page_cost 같은 I/O 쪽 비용을 먼저 손보고, CPU 비용 세 개(cpu_tuple_cost, cpu_index_tuple_cost, cpu_operator_cost)는 기본 비율을 유지하는 편이 안전하다. 바꾼다면 EXPLAIN cost 변화를 확인하며 조금씩 움직인다.출처: PostgreSQL 18 문서