본문으로 건너뛰기

gin_pending_list_limit

버전기본값context타입
14four megabytes ( 4MB )userinteger
15four megabytes ( 4MB )userinteger
16four megabytes ( 4MB )userinteger
17four megabytes ( 4MB )userinteger
18four megabytes ( 4MB )userinteger
19four megabytes ( 4MB )userinteger

fastupdate가 켜진 GIN index의 pending list 최대 크기를 정한다. 단위 없이 값을 주면 킬로바이트로 해석하며, 기본값은 4MB다.

GIN index는 insert 비용을 줄이기 위해 새 항목을 곧바로 본 구조에 넣지 않고 pending list에 쌓아 두는 fastupdate 메커니즘을 제공한다. pending list가 이 한도를 넘으면 쌓인 항목들을 GIN 본 구조로 한꺼번에 옮기며 정리한다. 개별 GIN index에 대해서는 index storage parameter로 이 값을 덮어쓸 수 있다.

pending list가 클수록 insert는 빨라지지만, 검색 시 본 구조에 더해 pending list까지 순차적으로 훑어야 하므로 조회 성능이 나빠질 수 있다. 정리는 한도 초과 시점 외에 vacuum 과정에서도 수행된다.

운영 노트: 한도를 넘겨 정리가 일어나는 순간의 insert는 그 비용을 한꺼번에 떠안아 응답 시간이 튈 수 있다. 쓰기 응답이 주기적으로 튀거나 GIN 검색이 점점 느려진다면 pending list 크기와 autovacuum 주기를 함께 점검할 필요가 있다.

출처: PostgreSQL 18 문서