IT/PostgreSQL

[PostgreSQL] VACUUM이란?

자연산 금붕어 2025. 2. 28. 10:06

[ VACUUM? ]

  • PostgreSQL에서 MVCC 지원을 위해 사용된 레코드(row) 및 XID를 관리하고 디스크 공간을 확보하며, 통계 정보를 갱산하는 작업

[ VACUUM의 필요성 ]

  • Dead Tuple 정리로 쿼리 성능 향상과 FSM(FreeSpaceMap) 확보 및 VM(Visivility Map) 갱신
  • XID Wraparound로 인한 데이터 손실 방지
  • Database의 통계정보 수집 및 갱신
  • Query Planner에 필요한 통계정보 갱신

[ VACUUM FULL ]

  • 물리 디스크 공간 확보
  • Access Exclusive Lock을 흭득하여 Select도 대기 상태로 됨

[ AUTO VACUUM ]

  • Dead Tuple 누적치가 임계에 도달했을 때 자동으로 Vacuum을 수행하여 FSM 반환 및 XID Wraparound 방지

[ VACUUM FREEZE ]

  • Current XID와 OLD XID를 비교하여 1이라도 차이가 있으면 Old XID를 반환 시키는 명시적 명령어

 

[ VACUUM 동작 원리 ]

 

[ VACUUM FULL 동작 원리 ]

반응형

'IT > PostgreSQL' 카테고리의 다른 글

[ PostgreSQL ] PostgreSQL 설치  (0) 2025.02.28
[PostgreSQL] MVCC란?  (0) 2025.02.28
[PostgreSQL] PostgreSQL이란?  (0) 2025.02.21