[Postgresql] vacuum

작성자아이디 : skok1025, 2022-07-26 18:09:08
카테고리 : DB Postgresql 게시글 수정

간략요약하자면 

UPDATE, DELETE 를 한다고 해서 Postgresql 은 물리적인 공간이 사라지는 것은 아니다. (Live Tuple -> Dead Tuple 이 되는 것임)

따라서 물리적인 공간을 지우기 위해서는 "vacuum" 이라는 것을 제공한다. 

- auto vacuum : https://nrise.github.io/posts/postgresql-autovacuum/ 참조

- alter table vauum (* 컬럼타입을 변경하는 것만으로도 full vacuum 과 동일한 효과)

           BEGIN;
                LOCK TABLE {테이블명} IN ACCESS EXCLUSIVE MODE;
                ALTER TABLE {테이블명} ADD COLUMN _tmp INTEGER NULL;
                ALTER TABLE {테이블명} ALTER COLUMN _tmp TYPE TEXT;
                ALTER TABLE {테이블명} DROP COLUMN _tmp;
            END;