1. VACUUM
1 |
▷ |
1 |
▷ |
1 |
2 |
2 |
2 | ||
3 |
(3) |
| ||
4 |
4 |
4 | ||
5 |
(5) |
| ||
6 |
6 |
6 |
3, 5를 삭제하고 난 후 VACUUM 이 후
위에 보이는 것은 블록의 data 이다.
delete가 발생하는 경우, 괄호 안의 값처럼 data가 지워지지 않은 체 flag 값만 변경되어
해당 블록은 사용할 수 없는 공간으로 남게 된다.
이 경우, VACUUM 명령을 통해 delete flag가 있는 data를 영구히 지워버림으로써 해당 블록을 사용할 수 있는 공간으로 비워주게 된다.
VACUUM은 table의 Lock을 걸지 않으므로 운영 중에도 사용이 가능하다.
2. VACUUM FULL
1 |
▷ |
1 |
▷ |
1 |
▷ |
1 |
2 |
2 |
2 |
2 | |||
3 |
(3) |
4 |
4 | |||
4 |
4 |
6 |
6 | |||
5 |
(5) |
#1 |
| |||
6 |
6 |
|
3, 5를 삭제 VACUUM FULL
VACUUM FULL을 하게 되면 대상 Table은 다른 곳에 data를 copy하게 됨 (#1)
그리고 나서 기존 table을 클리어 하고, 기존 data를 insert하게 된다. (data compacting)
VACUUM FULL은 online 중에는 사용할 수 없다.
table Lock을 유발시키게 된다.
posted by. 신기철 (11.14)
'2. DBMS이야기 > 01. PostgreSQL' 카테고리의 다른 글
psql 내 명령어 활용 - \? 항목의 기능 설명 (3차) (0) | 2014.11.19 |
---|---|
[PostgreSQL ADMIN] DBMS 접근제한 설정 (0) | 2014.11.18 |
[PostgreSQL ADMIN] Backup & Recovery (0) | 2014.11.06 |
[PostgreSQL] PostgreSQL에서 Object 사이즈 관련 (0) | 2014.11.05 |
[PostgreSQL Admin] 5. Privileges - Default Privilege & Catalog (0) | 2014.11.03 |