๐ข ๋ณธ ๋ฌธ์์์๋ โ Vacuum์ ๋ชฉ์ ๊ณผ โกVacuum ๋์ Mode์ ๋ํด ๋จผ์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ดํ ์กฐ๊ธ์ ํน๋ณํ๊ฒ ๋์ํ๋ โขVacuum Freeze์ ๋์์๋ฆฌ๋ฅผ ์ค๋ช ํ ํ ๋ง์ง๋ง์ผ๋ก โฃ์ ์ฒด์ ์ธ Vacuum ์ํ ํ๋ก์ธ์ค์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋๋ถ์ด ์ง๋ ๋ฌธ์๋ค์ ํตํด ์๊ฐ๋์๋ ๊ฐ๋ ๋ค์ด ๋ชจ๋ ํผ์ฉ๋์ด ์ฌ์ฉ๋๋ ๋งํผ, ์ถฉ๋ถํ ์ดํด๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๊ธฐ๋ฅผ ์ถ์ฒํฉ๋๋ค.
Manual Vacuum
Vacuum ์ด๋?
์ง๊ณต์ฒญ์๊ธฐ๋ผ๋ ๋ป์ ์ง๋ Vacuum์ PostgreSQL์๋ง ์กด์ฌํ๋ ํน์ํ ๊ฐ๋ ์ ๋๋ค. ์์ ๋ฌธ์์์ ๊ฐ์กฐํ๋ค์ํผ MVCC ๋์์๋ฆฌ์ ๋ฐ๋ฅธ ๊ณต๊ฐ ๋นํจ์จ๊ณผ XID Wraparound๋ฐ์ ๋ฑ PostgreSQL์ ํน์ฑ์ ๊ธฐ์ธํ ๋ถ์์ฉ์ ํํผํ๊ธฐ ์ํด ๋ฑ์ฅํ์ต๋๋ค.
Vacuum์ ๋ช
๋ น์ด ์กฐํฉ์ ๋ฐ๋ผ VACUUM
, VACUUM FULL
, VACUUM FREEZE
๋ฑ์ผ๋ก ๋๋๊ธฐ๋ ํ๋๋ฐ, ๋ณธ ๋ฌธ์์์๋ Autovacuum Launcher์ ์ํด ์ํ๋๋ Vacuum์ด ์๋ ์ฌ์ฉ์๊ฐ ์ง์ ์ํํ Manual Vacuum์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Vacuum์ ๋ชฉ์
Vacuum์ ์ฃผ์ ๋ชฉ์ ์ 4๊ฐ์ง๋ก ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ๋์คํฌ ๊ณต๊ฐ ํ๋ณด
2. Transaction ID Wraparound๋ก ์ธํ ์ค๋๋ ์๋ฃ์ ์์ค ๋ฐฉ์ง
3. ํต๊ณ ์ ๋ณด ๊ฐฑ์
4. Visibility Map(VM) ๊ฐฑ์ ์์
์ด ์ค ๋ณธ ๋ฌธ์์์๋ Vacuum์ ํต์ฌ ๋ชฉํ์ธ ๋์คํฌ ๊ณต๊ฐ ํ๋ณด์ XID Wraparound ๋ฐฉ์ง์ ๋ํ ๋ด์ฉ์ ์ ๋ฆฌํ ํ Vacuum ๋์ Mode์ ๋ํ ๋ด์ฉ์ ํ์ธํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋์คํฌ ๊ณต๊ฐ ํ๋ณด
PostgreSQL์ MVCC ๋ชจ๋ธ ๊ตฌํ์ ์ํด ์์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ ์ญ์ ํ์ง ์์ ์ํ๋ก ๋จ๊ฒจ๋๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ์ด ๋น๋ฒํ ํ ์ด๋ธ์ ์ฌ์ด์ฆ๋ ์ฆ๊ฐํ ์๋ฐ์ ์์ต๋๋ค. ํ์ง๋ง ์์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ค์ด ํ์ฌ ์งํ ์ค์ธ ํธ๋์ญ์ ๋ค์ ์ํด ๋ ์ด์ ์ฐธ์กฐ๋์ง ์๋๋ค๋ ๊ฒ๋ง ๋ณด์ฅ๋๋ค๋ฉด, ํด๋น ๋ฒ์ ์ ๋ฐ์ดํฐ๋ ์ญ์ ๋๊ฑฐ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ๋ณ๊ฒฝ๋์ด๋ ๋ฌด๋ฐฉํฉ๋๋ค.
Vacuum์ ์ด์ฒ๋ผ ๊ตฌ ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ๋ณ๊ฒฝํ๊ฑฐ๋ ๊ตฌ ๋ฒ์ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ธ ๊ณต๊ฐ์ OS๋ก ๋ฐํํจ์ผ๋ก์จ ๋์คํฌ ๊ณต๊ฐ์ ํ๋ณดํ๋ ์ญํ ์ ์ํํฉ๋๋ค.
์ ์์ ๊ฒฝ์ฐ๋ฅผ Standard Vacuum์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, VACUUM
๋ช
๋ น์ด์ ์ํด ์ํ๋ฉ๋๋ค. ๋ฐ๋ฉด, ํ์๋ ๊ตฌ ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ์ฌ ํ์ผ์ ์ฌ๊ตฌ์ฑํ๋ ๋ฐฉ์์ผ๋ก VACUUM FULL
๋ช
๋ น์ด์ ์ํด ์ํ๋ฉ๋๋ค.
Standard Vacuum์ ์ํ ์ ์ฐจ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค
1. VM ํ์ผ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Vacuum ๋์ ํ์ด์ง๋ฅผ ์ ์
2. ํด๋น ํ์ด์ง์์ Dead Tuple์ ๋ํ ์ ๋ฆฌ ์์
์ ์ํ
Standard Vacuum์ ๊ณต๊ฐ๊ด๋ฆฌ ์ธก๋ฉด์์ ๋ณด๋ฉด ์ต์์ ๊ณต๊ฐ ์ฌ์ฉ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ์์ด ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฃผ๊ธฐ์ ์ธ Vacuum์ํ์ผ๋ก ์ธํ ์ฌ์ฌ์ฉ ๊ณต๊ฐ์ ํ๋ณด๋ ๋ฐ์ดํฐ ์ฆ๊ฐ ๋์ ์ต์ ํ๋ ํจ๊ณผ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ต์ ์ ๊ณต๊ฐ ์ ์ง๋ผ๋ ์ผ๋ถ ๋ชฉ์ ์ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
๋ฐ๋ฉด, Vacuum Full ์์ ์ ๊ฒฝ์ฐ ์์ ์ด์ผ๊ธฐํ Standard Vacuum๊ณผ๋ ์ ํ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์ํ๊ฒ ๋ฉ๋๋ค.
Standard Vacuum์ด ๊ธฐ์กด ๋ฐ์ดํฐ์ ๋ํด ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ๋ฐํํ๋ ๊ณผ์ ์ด๋ผ ํ๋ค๋ฉด, Vacuum Full์ ์ผ์ข ์ Table Reorganization ์์ ๊ณผ ์ ์ฌํ๋ค ํ ์ ์์ต๋๋ค.
์ฆ, Live Tuple ๋ค๋ง์ ๋ชจ์์ ์๋ก์ด ํ ์ด๋ธ์ ๊ตฌ์ฑํ๊ณ , ๊ธฐ์กด ํ ์ด๋ธ์ ์ญ์ ํ๋ ๊ณผ์ ์ ํตํด ๋ฌผ๋ฆฌ์ ์ธ ๊ณต๊ฐ ๋ฐํ์ด ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ด๋ฌํ ์ฌ๊ตฌ์ฑ ๋ฐฉ์์ ๋์ ๊ณผ์ ์ Table์ ๋ํ Exclusive Lock์ ํ๋ ๊ณผ์ ์ด ํ์ํ๋ฉฐ, ์ด๋ ๋์์ฑ์ ๋จ์ด๋จ๋ฆฌ๋ ์์ธ์ด ๋๋ฏ๋ก ์ฌ์ฉ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ๋ํ, ์ ๊ท ํ ์ด๋ธ์ ์ํ ์ผ์ ๋์ ๋์คํฌ ๊ณต๊ฐ์ด ์กด์ฌํด์ผ ์์ ์ ์์ํ ์ ์๊ธฐ๋ ํฉ๋๋ค.
์ค๋๋ ์๋ฃ ์์ค์ ๋ฐฉ์ง
XID Wraparound ๋ฐฉ์ง๋ฅผ ์ํ Data Freezing ์์ ์ญ์ Vacuum์ ์ฃผ์ ๋ชฉ์ ์ค ํ๋์ ๋๋ค.
Data Freezing์์ ์ ์ฐจ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ์์ ์ค๋ช ํ ๋์คํฌ ๊ณต๊ฐ ์ ๋ฆฌ ์์ ํ ์ํ๋ฉ๋๋ค.
1. VM ํ์ผ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Vacuum ๋์ ํ์ด์ง๋ฅผ ์ ์
2. ํด๋น ํ์ด์ง์์ Dead Tuple์ ๋ํ ์ ๋ฆฌ ์์
์ ์ํ
3. ํด๋น ํ์ด์ง์์ Data Freezing ์์
์ ์ํ
Data Freezing ์์
์ ๊ฐ๋ณ Row(Tuple)์ Age๊ฐ VACUUM_FREEZE_MIN_AGE
๋ณด๋ค ํฐ(=์ค๋๋) Row๋ฅผ ๋์์ผ๋ก ํ๋ค๊ณ ์ด์ผ๊ธฐํ ๋ฐ ์์ต๋๋ค. VACUUM_FREEZE_MIN_AGE
๊ฐ์ ์ค์ผ ๊ฒฝ์ฐ๋ณด๋ค ๋ง์ Row๋ฅผ Freezing ์ํฌ ์ ์์ง๋ง ๋ ๋ง์ ์๊ฐ๊ณผ ์์์ ํ์๋ก ํฉ๋๋ค.
์ผํ, VACUUM_FREEZE_MIN_AGE
๋ฅผ ์๊ฒ ์ค์ ํ๋ฉด, ์ดํ Data Freezing์ ์ํํ ๋์ Row๋ค์ด ์ค์ด๋๋ ์ด์ ์ด ์๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ํ์ง๋ง, ๋ง์ฝ ์ต๊ทผ ๋ฐ์ดํฐ์ ๋ํ ์กฐ์(Delete/Update)์ด ๋น๋ฒํ ํ
์ด๋ธ์ VACUUM_FREEZE_MIN_AGE
์์น๋ฅผ ์๊ฒ ์ค์ ํ๋ฉด ์ ์จ Freezing ํ ์ต๊ทผ ๋ฐ์ดํฐ๋ค์ด ๋ค์ ALL_FROZEN=0์ธ ์ํ๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ต๊ทผ ๋ณ๊ฒฝ ๋ฐ์ดํฐ์ ๋ํ ์ง์์ ์ธ Data Freezing ๊ณผ์ ์ ์ํํ๋ ๋นํจ์จ์ด ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ํ
์ด๋ธ ์ฉ๋์ ์ฌ์ฉ ํจํด์ ๋ง๋ ์ค์ ์ด ํ์ํฉ๋๋ค.
๐ vacuum_freeze_min_age
Vacuum์ด Freeze ํ Row์ ์ต์ Age์ด๋ฉฐ, ๊ธฐ๋ณธ๊ฐ์ 5์ฒ๋ง(50,000,000)์ ๋๋ค.
Standard Vacuum Mode
Standard Vacuum์ ๋ด๋ถ์ ์ผ๋ก ๋ ๊ฐ์ง Mode๋ก ๋์ํ๊ฒ ๋ฉ๋๋ค. ๊ฐ๊ฐ์ Eager Mode์ Lazy Mode๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ๊ฐ Mode์ ๋์ ๊ธฐ์ค ๋ฐ ๋ด๋ถ ์ฒ๋ฆฌ ๋์์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ ์ฌ์ค ๋ Mode๋ Document์ ์กด์ฌํ๋ ์ ์ ์ฉ์ด๋ ์๋ ๊ฒ์ผ๋ก ํ์ธ๋ฉ๋๋ค. Eager Mode/ Lazy Mode๋ฅผ ๊ฐ๊ฐ Aggressive Vacuum / Vacuum์ผ๋ก๋ ์นญํ๊ธฐ๋ ํ์ง๋ง, ๋ณธ ๋ฌธ์์์๋ Vacuum Freeze์ ์ฌ์ฉ๋ Aggressive Vacuum๊ณผ ๊ตฌ๋ถํ๊ธฐ ์ํด Eager Mode / Lazy Mode๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค.
Mode์ ๊ธฐ์ค
๋ Mode ์ค ๋ฌด์์ ์ ํํ ์ง ์ฌ๋ถ๋ ์ค๋ก์ง Table์ Age์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค.
Vacuum์ด ์ํ๋๋ ์์ ์ Table์ Age๊ฐ VACUUM_FREEZE_TABLE_AGE
๋ณด๋ค ํฌ๋ฉด(=์ค๋๋๋ค) Eager Mode๋ก ๋์ํ๋ฉฐ, ๋ฐ๋๋ก VACUUM_FREEZE_TABLE_AGE
๋ณด๋ค ์์ ๊ฒฝ์ฐ๋ผ๋ฉด Lazy Mode๋ก ์ํ๋ฉ๋๋ค.
๐ vacuum_freeze_table_age
Vacuum Mode๋ฅผ ๊ฒฐ์ ํ๋ ๊ธฐ์ค์ด ๋๋ Age์ด๋ฉฐ, ๊ธฐ๋ณธ๊ฐ์ 150,000,000์ ๋๋ค.
Mode์ ์ฐจ์ด์
Table์ Age์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ฐ Mode์ ์ฐจ์ด์ ์ ๋์ ํ์ด์ง์ ์์ต๋๋ค. ๊ฐ Mode๋ ๋์์ด ๋๋ ํ์ด์ง๋ฅผ ์๋์ ๊ฐ์ด ์ ์ํฉ๋๋ค.
Lazy Mode : Visibility Map์ ALL_VISIBLE Bit๊ฐ 0์ธ ๋ชจ๋ ํ์ด์ง
Eager Mode : Visibility Map์ ALL_FROZEN Bit๊ฐ 0์ธ ๋ชจ๋ ํ์ด์ง
์ฆ, Lazy Mode์์๋ Frozen์ฌ๋ถ์ ์๊ด์์ด Dead Tuple์ด ์๋ ํ์ด์ง(ALL_VISIBLE_=0)๋ง์ ๋์์ผ๋ก ํ๋ฉฐ, Eager Mode์์๋ Lazy Mode ๋ณด๋ค ๊ด๋ฒ์ํ๊ฒ Frozen์ด ์๋ ๋ชจ๋ ํ์ด์ง(ALL_FROZEN=0)๋ฅผ Vacuum์ ๋์์ผ๋ก ์ผ๋๋ค๋ ๊ฐ๋ ์ ๋๋ค. ์ด๋ฌํ ์ฐจ์ด๋ฅผ ๋๋ ์ด์ ๋ ๋ฌด์์ผ๊น์?
ํ ๊ฐ์ง ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๋ง์ฝ ๋ฐ์ดํฐ๊ฐ ์
๋ ฅ๋ง ๋๊ณ ๋ณ๋์ด ์๋ Table์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ ์
๋ ฅ ํ, Row์ Age๊ฐ์ด VACUUM_FREEZE_MIN_AGE
์ ๋๋ฌํ์ง ์์ ์ํ์์ Standard Vacuum์ ์ํํ์๋ค๋ฉด ํด๋น ํ
์ด๋ธ์ ๋ชจ๋ ํ์ด์ง๋ ALL_VISIBLE=1, ALL_FROZEN=0 ์ํ์ผ ๊ฒ์
๋๋ค.
ํ์ง๋ง Vacuum์ด Lazy Mode ๋ฐฉ์์ผ๋ก๋ง ๋์ํ๋ค๋ฉด, ์ ์ํ(ALL_VISIBLE=1, ALL_FROZEN=0)์ ํ์ด์ง๋ Vacuum ๋์ ํ์ด์ง์์ ํญ์ ์ ์ธ๋ ์๋ฐ์ ์์ต๋๋ค. ์ฆ, ๊ณต๊ฐ ์ ๋ฆฌ๋ฅผ ์ํ ์์ ์ ๋ถํ์ํ๋, ์ ์ฌ์ ์ผ๋ก Data Freezing์ ๋์์ด ๋ Row๋ฅผ ๊ฐ์ง๊ณ ์๋ ํ์ด์ง๋ค์กฐ์ฐจ Vacuum์ ๋์์์ ์ ์ธ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ํฉ์ ๋ง๊ณ ์ Table์ Age๊ฐ VACUUM_FREEZE_TABLE_AGE
๋ณด๋ค ํฐ ๊ฒฝ์ฐ ALL_FROZEN=0์ธ ๋ชจ๋ ํ์ด์ง๋ฅผ ๋์์ผ๋ก ํ๋ Eager Mode๋ก Vacuum์ด ๋์ํ๊ฒ ๋ฉ๋๋ค.
Eager Mode๋ก Vacuum์ด ์ํ๋์๋ค๋ ๊ฒ์ ์ ์ฒด ํ์ด์ง์ ๋ํ Data Freezing ์ํ๋ฅผ ๋ชจ๋ ํ์ธํ์๋ค๋ ๋ป์ด๊ธฐ๋ ํ๋ฏ๋ก Table์ Age์ ์ฌ์ฉ๋๋ relfrozenxid
์ ๋ํ ๊ฐฑ์ ์์
์ญ์ ๊ฐ๋ฅํฉ๋๋ค.
๐ Data Freezing ์ํ๋ฅผ ๋ชจ๋ ํ์ธํ์๋ค๋ ๊ฒ์ ๋ชจ๋ Row๋ฅผ Data Freezing ํ์๋ค๋ ๊ฒ์ด ์๋๋ผ, ๋ชจ๋ Row๊ฐ Data Freezing์ด ๋ถํ์ํ ์ํ์์ ํ์ธํ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๐ 9.6 ์ด์ ๋ฒ์ ์์๋ VM์ ALL_FROZEN Bit ๊ฐ ์์๊ธฐ ๋๋ฌธ์ Eager Mode ์ํ ์ ํ ์ด๋ธ์ ๋ชจ๋ ํ์ด์ง๋ฅผ Scan ํด์ผ ํ๋ ๋นํจ์จ์ด ์กด์ฌํ์ต๋๋ค. ํ์ง๋ง 9.6 ๋ฒ์ ์ ALL_FROZEN Bit๊ฐ ์ถ๊ฐ๋๋ฉด์ Skip ํด์ผ ํ ํ์ด์ง๋ฅผ ์๋ณํ ์ ์์ด์ก๊ณ , Vacuum, ์ ํํ ๋งํ๋ฉด Eager Mode์ Vacuum ์ฑ๋ฅ์ด ์ข์์ง๋ ํจ๊ณผ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
Eager Mode ๋์ ํ relfrozenxid์ ๋ณํ
- DB ์ธ์ฌ์ด๋ | PostgreSQL Vacuum - 3. Age ๋ฌธ์ ไธญ -
Table์ Age์ ์ฌ์ฉ๋๋ relfrozenxid ๊ฐ์ ํน์ ์กฐ๊ฑด ๋ง์กฑ ์ ๊ฐฑ์ ๊ฐ๋ฅํ๋ค
ํด๋น ๋ฌธ์๋ฅผ ํตํด ๋ฏธ์ฒ ์ค๋ช ํ์ง ๋ชปํ ํน์ ์กฐ๊ฑด์ด๋, Eager Mode๋ฅผ ํตํด ALL_FROZEN=0์ธ ๋ชจ๋ ํ์ด์ง์ ๋ํด Data Freezing ์ฌ๋ถ๋ฅผ ํ์ธํ ์ํ๋ฅผ ์ด์ผ๊ธฐํฉ๋๋ค. Eager Mode๋ก Vacuum์ด ์ํ๋๋ฉด Table์ relfrozenxid๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
relfrozenxid = Current XID - VACUUM_FREEZE_MIN_AGE
๋ํ ๋ณ๊ฒฝ๋ relfrozenxid๊ฐ ์๋ฏธํ๋ ๋ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Table์ ๊ฐ์ฅ ์ค๋๋ Row์ Age๋
VACUUM_FREEZE_MIN_AGE
์์ ๋ณด์ฅํ๋ค. - Table์ ๊ฐ์ฅ ์ค๋๋ Row์ Age๊ฐ
VACUUM_FREEZE_MIN_AGE
์ด๋ฏ๋ก, Table์ Age ์ญ์VACUUM_FREEZE_MIN_AGE
๋ก ๋ณ๊ฒฝ๋๋ค. (์ด๋ ค์ง๋ค)
Vacuum Freeze
Vacuum์ ๋ชฉ์ ์ ์ค๋ช
ํ๋ฉฐ ์ธ๊ธํ VACUUM
๊ณผ VACUUM FULL
์ธ์๋ VACUUM FREEZE
๋ผ๋ ๋ช
๋ น์ด๊ฐ ์กด์ฌํฉ๋๋ค.
์ฌ์ค FREEZE
์ต์
์ ์ฌ์ฉํ Vacuum์ ์ฒ๋ฆฌ๊ณผ์ ์ Standard Vacuum๊ณผ ์์ ํ ๋์ผํฉ๋๋ค. ๋ค๋ง ๋ด๋ถ์ ์ผ๋ก ๋ค์ ๋ Parameter ๊ฐ์ 0์ผ๋ก ์กฐ์ ํ ํ Vacuum์ ์ํํ๋ค๋ ์ฐจ์ด๊ฐ ์์ ๋ฟ์
๋๋ค.
VACUUM_FREEZE_MIN_AGE = 0
VACUUM_FREEZE_TABLE_AGE = 0
๋ด๋ถ์ ์ผ๋ก VACUUM_FREEZE_TABLE_AGE
๋ฅผ 0์ผ๋ก ์ค์ ํ ๊ฒฝ์ฐ Table์ Age๋ ํญ์ VACUUM_FREEZE_TABLE_AGE
๋ณด๋ค ํฌ๋ฏ๋ก Vacuum์ด Eager Mode๋ก ๋์ํ๊ฒ ๋ฉ๋๋ค. ๋ํ Data Freezing ์ ์ ๊ธฐ์ค์ธ VACUUM_FREEZE_MIN_AGE
๋ฅผ 0์ผ๋ก ์ค์ ํ ๊ฒฝ์ฐ ๋์ ํ์ด์ง ๋ด ๋ชจ๋ Tuple๋ค์ด Data Freezing์ ๋์์ด ๋ฉ๋๋ค.
์ด์ ๊ฐ์ด FREEZE
์ต์
์ ์ฌ์ฉํ Vacuum์ Standard Vacuum๋ณด๋ค ๊ณต๊ฒฉ์ ์ผ๋ก ์ํ๋๋ค ๋ผ๋ ์๋ฏธ์์ Aggressive Vacuum์ผ๋ก ๋ถ๋ฅด๊ธฐ๋ ํฉ๋๋ค.
Manual Vacuum Process
์ง๊ธ๊น์ง ์ด์ผ๊ธฐํ VACUUM
, VACUUM FULL
, VACUUM FREEZE
์ ๊ฐ์ Manual Vacuum์ ๋์ ๊ณผ์ ๋ฐ ์์ฌ๊ฒฐ์ ์ ๊ด์ฌํ๋ Parameter๋ ์๋์ ๊ฐ์ต๋๋ค.
Parameter | Default Value |
vacuum_freeze_min_age | 50000000 |
vacuum_freeze_table_age | 150000000 |
๊ธฐํ ๋ฐ ๊ธ | ๊ธฐ์ ๊ธฐํํ
์ด๋ฏธ์ง ์ ์ | ๋์์ธ๊ทธ๋ฃน ์ด๋ฏผ์
'์์ ๊ฒฝ์๋ ฅ > DB ์ธ์ฌ์ด๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DB ์ธ์ฌ์ด๋ | MySQL Architecture - 1. MySQL ์์ง (0) | 2022.06.30 |
---|---|
DB ์ธ์ฌ์ด๋ | PostgreSQL Vacuum - 6. Autovacuum (4) | 2022.04.29 |
DB ์ธ์ฌ์ด๋ | PostgreSQL Vacuum - 4. Visibility Map (0) | 2022.04.29 |
DB ์ธ์ฌ์ด๋ | PostgreSQL Vacuum - 3. Age (0) | 2022.04.29 |
DB ์ธ์ฌ์ด๋ | PostgreSQL Vacuum - 2. Transaction ID (0) | 2022.04.29 |
๋๊ธ0