Avatar
임호현
좋아요
댓글
[FAQ/PG] 베큠(vaccum)이 무엇이고 왜 하는게 좋은가요?

Question.  EPAS에서 베큠(vaccum)을 주기적으로 하는 것이 좋다고 들었습니다.
베큠(vaccum)이란 무엇이고, 왜 하는 것이 좋은 건가요?

 

Answer.

Vaccum은 다른 RDBMS와 달리 EPAS의 기반이 되는 PostgreSQL에 있는 고유 명령입니다.
PostgreSQL의 디스크에서 남은 쓰레기 데이터를 정리하는 명령인데, 쉽게 DB 메모리 상의 ‘디스크 조각모음’이라고 생각할 수 있습니다.
PostgreSQL에서는 특정 Row가 Update나 Delete 되어도 물리적인 공간은 삭제되지 않고 남게 됩니다.
이런 오래된 Row 중 어디에도 참조되지 않고 재사용 가능한 Row를 찾아서 FSM(Free Space Map)이라는 메모리 공간에 그 위치와 크기를 기록합니다. 이후, 새로운 행을 추가할 경우 FSM영역에서 검색하여 기록된 Row를 재사용하게 됩니다.
Vaccum을 시행하면 FSM에 저장될 사용되지 않는 Row들이 삭제되면서 결국, I/O를 감소시킵니다.
더 자세한 내용은 Vaccum문서 를 참고해 주시기 바랍니다.