autovacuum_vacuum_insert_threshold
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 1000 tuples | sighup | integer |
| 15 | 1000 tuples | sighup | integer |
| 16 | 1000 tuples | sighup | integer |
| 17 | 1000 tuples | sighup | integer |
| 18 | 1000 tuples | sighup | integer |
| 19 | 1000 tuples | sighup | integer |
한 테이블에서 삽입된 tuple 수 기준으로 autovacuum이 VACUUM을 일으키는 데 필요한 최소치를 정한다. 기본값은 1000이며, -1로 설정하면 삽입 수 기반 vacuum 자체가 비활성화된다.
PostgreSQL 13에서 도입된 판정 경로로, dead tuple 기반 판정식(autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factor)과는 별개로 동작한다. 삽입만 일어나는 테이블은 dead tuple이 없어 기존 판정으로는 vacuum 대상이 되지 않지만, visibility map 갱신과 freeze를 위해서는 vacuum이 여전히 필요하다. 그래서 마지막 vacuum 이후 삽입된 tuple 수가 autovacuum_vacuum_insert_threshold + autovacuum_vacuum_insert_scale_factor × 기준 크기를 넘으면 vacuum이 실행된다. 이 파라미터는 그 판정식의 고정분이다. postgresql.conf나 서버 커맨드라인에서 설정하며, 개별 테이블의 storage parameter로 덮어쓸 수 있다.
운영 노트: -1로 꺼 두면 append-only 테이블의 freeze가
autovacuum_freeze_max_age 도달 시점까지 미뤄져 결국 대규모 anti-wraparound vacuum으로 되돌아온다. 특별한 이유가 없다면 켠 채로 두고, vacuum 빈도가 부담이면 threshold나 scale factor를 테이블 단위로 조정하는 편이 낫다.출처: PostgreSQL 18 문서