백엔드
pgstattuple extension을 사용한 PostgreSQL 성능 향상
두줄요약
pgstattuple 확장으로 PostgreSQL 테이블과 인덱스의 팽창, 단편화, 여유 공간을 진단하는 방법을 소개했습니다. VACUUM, pg_repack, REINDEX와 자동화 전략으로 성능을 유지하는 실무 팁을 정리했습니다.
핵심 내용
- pgstattuple 확장으로 PostgreSQL 테이블·인덱스의 물리적 스토리지 통계와 dead tuple, free space, 평균 리프 밀도 확인
- MVCC와 autovacuum 특성상 누적되는 테이블 팽창과 인덱스 단편화의 진단 수단으로 활용
- Aurora PostgreSQL과 RDS PostgreSQL에서 사용 가능하며, 세부 분석에는 pgstattuple과 pgstatindex, 빠른 추정에는 pgstattuple_approx 활용
적용해볼 점
- dead_tuple_percent와 free_percent로 팽창 여부를 주기적으로 점검
- VACUUM, VACUUM FULL, pg_repack, REINDEX를 상태에 맞게 선택
- 큰 테이블은 저부하 시간대나 복제본에서 점검하고 pg_cron으로 유지 관리 자동화
