PostgreSQL ์—…๋ฐ์ดํŠธ. ์ž‘์—…์„ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ์Šคํ‚ค๋งˆ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ reshape ์ถœ์‹œ

์ง€์›๋˜๋Š” ๋ชจ๋“  PostgreSQL ๋ถ„๊ธฐ์ธ 14.2, 13.6, 12.10, 11.15 ๋ฐ 10.20์— ๋Œ€ํ•ด ์ˆ˜์ • ์—…๋ฐ์ดํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ์ง€๋‚œ 55๊ฐœ์›” ๋™์•ˆ ์‹๋ณ„๋œ XNUMX๊ฐœ์˜ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค๋„ VACUUM ์ž‘์—… ์ค‘์— HOT(ํž™ ์ „์šฉ ํŠœํ”Œ) ์ฒด์ธ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ TOAST ์Šคํ† ๋ฆฌ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด REINDEX CONCURRENTLY ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋“œ๋ฌผ๊ฒŒ ์ธ๋ฑ์Šค ์†์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ALTER STATISTICS๋ฅผ ์‹คํ–‰ํ•  ๋•Œ์™€ ๋‹ค์ค‘ ๋ฒ”์œ„ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•œ ์ฟผ๋ฆฌ ํ”Œ๋ž˜๋„ˆ์˜ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๋ฑ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ์™€ ๋‹ค์ˆ˜์˜ ๊ฐœ์ฒด์— ๋Œ€ํ•ด REASSIGN OWNED BY ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„ํ• ๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๊ณ ๊ธ‰ ํ†ต๊ณ„ ๊ตฌ์„ฑ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ž‘์—…์„ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  PostgreSQL์˜ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ๋ณต์žกํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” reshape ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์ถœ์‹œ์— ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์ •์ƒ์ ์ธ ์กฐ๊ฑด์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์ผ์‹œ์ ์œผ๋กœ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธด ์ฐจ๋‹จ์ด๋‚˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ฃผ๊ธฐ๋ฅผ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  ์ด์ „ ๋ฐ์ดํ„ฐ ์ฒด๊ณ„์—์„œ ์ƒˆ ๋ฐ์ดํ„ฐ ์ฒด๊ณ„๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ณ„์† ์ž‘์—…ํ•˜๋Š” ํ…Œ์ด๋ธ” ๋ณด๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ , ์ด์ „ ์Šคํ‚ค๋งˆ์™€ ์ƒˆ ์Šคํ‚ค๋งˆ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ ์ž‘์—…์„ ๋ณ€ํ™˜ํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ๋„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘์— reshape๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ „ ์Šคํ‚ค๋งˆ์™€ ์ƒˆ ์Šคํ‚ค๋งˆ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž‘์—…์„ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ ์ฐจ์ ์œผ๋กœ ์ƒˆ ์Šคํ‚ค๋งˆ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋Œ€๊ทœ๋ชจ ์ธํ”„๋ผ์—์„œ๋Š” ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ด์ „ ์Šคํ‚ค๋งˆ์—์„œ ์ƒˆ ์Šคํ‚ค๋งˆ๋กœ ์ ์ง„์ ์œผ๋กœ ๊ต์ฒด๋  ์ˆ˜ ์žˆ์Œ). ์ƒˆ ์Šคํ‚ค๋งˆ๋กœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์™„๋ฃŒ๋˜๋ฉด ์ด์ „ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ์ง€์›์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ๋œ ๋ณด๊ธฐ์™€ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฌธ์ œ๊ฐ€ ์‹๋ณ„๋˜๋ฉด ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋˜๋Œ๋ฆฌ๊ณ  ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€