์๋ .
์ ์ด๋ฆ์ Vanya์ด๊ณ Java ๊ฐ๋ฐ์์ ๋๋ค. ์ ๋ PostgreSQL์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ , ๊ตฌ์กฐ ๋ฐ ์ฑ๋ฅ ์ต์ ํ, ์ฃผ๋ง์ ์ฝ๊ฐ์ DBA ์ญํ ์ ํ๋ ๋ฑ ๋ง์ ์์ ์ ์ํํฉ๋๋ค.
์ต๊ทผ์ ์ ๋ ๋ง์ดํฌ๋ก์๋น์ค์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๋ฆฌํ๊ณ Java ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ์ต๋๋ค.
์ฑ ์ ๋ถ์ธ
์ ๊ฐ ์์ ํ๋ PostgreSQL์ ๊ธฐ๋ณธ ๋ฒ์ ์ 10์ ๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ SQL ์ฟผ๋ฆฌ๋ ๋ฒ์ 11์์ ํ ์คํธ๋์์ต๋๋ค. ์ง์๋๋ ์ต์ ๋ฒ์ ์ 9.6์ ๋๋ค.
์ ์ฌ ์๋
์ด ๋ชจ๋ ์ผ์ ๊ฑฐ์ XNUMX๋
์ ์ ๋์๊ฒ ์ด์ํ ์ํฉ์์ ์์๋์์ต๋๋ค. ๊ฐ์๊ธฐ ๊ฒฝ์์ ์ธ ์ธ๋ฑ์ค ์์ฑ์ด ์ค๋ฅ๋ก ๋๋ฌ์ต๋๋ค. ํ์์ ๊ฐ์ด ์ธ๋ฑ์ค ์์ฒด๋ ์๋ชป๋ ์ํ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋จ์ ์์์ต๋๋ค. ๋ก๊ทธ ๋ถ์ ๊ฒฐ๊ณผ ๋ถ์กฑํจ์ด ๋ํ๋ฌ์ต๋๋ค.
๋ฌธ์ XNUMX - ๊ธฐ๋ณธ ๊ตฌ์ฑ
์๋ง๋ ๋ชจ๋ ์ฌ๋๋ค์ด ์ปคํผ๋ฉ์ด์ปค์์ ์คํํ ์ ์๋ Postgres์ ๋ํ ๋น์ ์ ๊ฝค ์ง์ณค์ ๊ฒ์ ๋๋ค. ํ์ง๋ง... ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ์ค์ ๋ก ๋ง์ ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค. ์ต์ํ์ฃผ์๋ฅผ ๊ธฐ์ธ์ผ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ ์ง ๋ณด์_์์ _๋ฉค, ์์_ํ์ผ_ํ๊ณ, ๋ฌธ_์๊ฐ ์ด๊ณผ ะธ lock_timeout.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ ์ง ๋ณด์_์์ _๋ฉค ๊ธฐ๋ณธ๊ฐ์ 64MB์์ผ๋ฉฐ ์์_ํ์ผ_ํ๊ณ ๋๋ต 2GB ์ ๋์ ๋๋ค. ํฐ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ์ต๋๋ค.
๋ฐ๋ผ์ ์์ pg-์์ธ-๊ฑด๊ฐ ์๋ฆฌ์ฆ๋ฅผ ๋ชจ์๋ดค์ต๋๋ค
๋ฌธ์ XNUMX - ์ค๋ณต ์ธ๋ฑ์ค
์ฐ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ SSD ๋๋ผ์ด๋ธ์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ HA-์ฌ๋ฌ ๋ฐ์ดํฐ ์ผํฐ, ๋ง์คํฐ ํธ์คํธ ๋ฐ n-๋ณต์ ๋ณธ ์. ๋์คํฌ ๊ณต๊ฐ์ ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ๊ท์คํ ์์์ ๋๋ค. ์ฑ๋ฅ๊ณผ CPU ์๋น๋งํผ ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ๋น ๋ฅธ ์ฝ๊ธฐ๋ฅผ ์ํด์๋ ์ธ๋ฑ์ค๊ฐ ํ์ํ๊ณ , ๋ถํ์ํ ์ธ๋ฑ์ค๋ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋๋ฅผ ๋ฆ์ถ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ถํ์ํ ์ธ๋ฑ์ค๋ฅผ ๋ณด๊ณ ์ถ์ง ์์ต๋๋ค.
์ด์ ๋ชจ๋ ๊ฒ์ ๋ณต์ํ ํ
๋ฌธ์ XNUMX - ๊ต์ฐจ ์ธ๋ฑ์ค
๋๋ถ๋ถ์ ์ด๋ณด ๊ฐ๋ฐ์๋ ๋จ์ผ ์ด์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ญ๋๋ค. ์ ์ฐจ์ ์ผ๋ก ์ด ๋น์ฆ๋์ค๋ฅผ ์ฒ ์ ํ ๊ฒฝํํ ์ฌ๋๋ค์ ์ฟผ๋ฆฌ๋ฅผ ์ต์ ํํ๊ณ ์ฌ๋ฌ ์ด์ ํฌํจํ๋ ๋ ๋ณต์กํ ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํ๊ธฐ ์์ํฉ๋๋ค. ์ด์ ์ธ๋ฑ์ค๊ฐ ๋ํ๋๋ ๋ฐฉ์์
๋๋ค. A, A + B, A + B + C ๋ฑ๋ฑ. ์ด ์ธ๋ฑ์ค ์ค ์ฒ์ ๋ ๊ฐ๋ ์ธ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ ๋์ฌ์ด๋ฏ๋ก ์์ ํ๊ฒ ์ญ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๋ํ ๋ง์ ๋์คํฌ ๊ณต๊ฐ์ ์ ์ฝํ๋ฉฐ ์ด์ ๋ํ ์ง๋จ๋ ์์ต๋๋ค.
๋ฌธ์ XNUMX - ์ธ๋ฑ์ค๊ฐ ์๋ ์ธ๋ ํค
Postgres๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฑ์ ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ์ง ์๊ณ ๋ ์ธ๋ ํค ์ ์ฝ ์กฐ๊ฑด์ ๋ง๋ค ์ ์์ต๋๋ค. ๋ง์ ์ํฉ์์ ์ด๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ผ๋ฉฐ ์ฌ์ง์ด ๋ํ๋์ง ์์ ์๋ ์์ต๋๋ค... ๋น๋ถ๊ฐ์...
์ฐ๋ฆฌ๋ ๋ง์ฐฌ๊ฐ์ง์์ต๋๋ค. ์ด๋ ์์ ์์ ์ผ์ ์ ๋ฐ๋ผ ์คํ๋๊ณ ํ
์คํธ ์ฃผ๋ฌธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ฐ๋ ์์
์ด ๋ง์คํฐ ํธ์คํธ์ ์ํด ์ฐ๋ฆฌ์๊ฒ "์ถ๊ฐ"๋๊ธฐ ์์ํ์ต๋๋ค. CPU์ IO๊ฐ ๋ญ๋น๋๊ณ ์์ฒญ ์๋๊ฐ ๋๋ ค์ง๊ณ ์๊ฐ ์ด๊ณผ๋์์ผ๋ฉฐ ์๋น์ค๋ XNUMX๊ฐ์์ต๋๋ค. ๋น ๋ฅธ ๋ถ์
delete from <table> where id in (โฆ)
๋ฌผ๋ก ์ด ๊ฒฝ์ฐ์๋ ๋์ ํ ์ด๋ธ์ id๋ณ ์ธ๋ฑ์ค๊ฐ ์์๊ณ , ์กฐ๊ฑด์ ๋ฐ๋ผ ์ญ์ ๋ ๋ ์ฝ๋๋ ๊ฑฐ์ ์์๋ค. ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ ๊ฒ ๊ฐ์์ง๋ง ์์ฝ๊ฒ๋ ๊ทธ๋ ์ง ์์์ต๋๋ค.
๋ฉ์ง ๋ถ์ด ๊ตฌ์ถํ๋ฌ ์ค์
จ์ด์ ์ค๋ช
ํ๋ค ๋์ ํ
์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๋ ๊ฒ ์ธ์๋ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ ์๋๋ฐ ๊ด๋ จ ํ
์ด๋ธ ์ค ํ๋์์ ์ด ๊ฒ์ฌ๊ฐ ์คํจํ๋ค๊ณ ๋งํ์ต๋๋ค. ์์ฐจ ์ค์บ ์ ์ ํ ์ธ๋ฑ์ค๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ฆฌํ์ฌ ์ง๋จ์ด ํ์ํ์ต๋๋ค.
๋ฌธ์ XNUMX โ ์ธ๋ฑ์ค์ null ๊ฐ
๊ธฐ๋ณธ์ ์ผ๋ก Postgres๋ btree ์ธ๋ฑ์ค์ null ๊ฐ์ ํฌํจํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋์ ์ ๋ ์ด๋ฌํ null์ ๋ถ์ง๋ฐํ ๋ฒ๋ฆฌ๋ ค๊ณ ๋
ธ๋ ฅํฉ๋๋ค(์ง๋จ where <A> is not null
. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ธ๋ฑ์ค ์ค ํ๋์ ํฌ๊ธฐ๋ฅผ 1877MB์์ 16KB๋ก ์ค์ผ ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋น์ค ์ค ํ๋์์๋ ์ธ๋ฑ์ค์์ null ๊ฐ์ ์ ์ธํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ๊ฐ ์ด 16%(์ ๋ ์์น๋ก 4.3GB) ๊ฐ์ํ์ต๋๋ค. ๋งค์ฐ ๊ฐ๋จํ ์์ ์ผ๋ก ๋์คํฌ ๊ณต๊ฐ์ ํฌ๊ฒ ์ ์ฝํ ์ ์์ต๋๋ค. ๐
๋ฌธ์ XNUMX โ ๊ธฐ๋ณธ ํค ๋ถ์กฑ
๋ฉ์ปค๋์ฆ์ ํน์ฑ์
์ด๋ ๋ ๋ฉ์ง ๋ง์ด๊ทธ๋ ์ด์
์ด ํ๋ฐํ ์ฌ์ฉ๋๋ ๋๊ท๋ชจ ํ
์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ ์
๋ฐ์ดํธํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ์๊ธฐ ํ
์ด๋ธ ํฌ๊ธฐ๋ฅผ +100GB๋ก ๋๋ ธ์ต๋๋ค. ์ ๋ง ๋ถ๋๋ฌ์ด ์ผ์ด์์ง๋ง ์ฐ๋ฆฌ์ ๋ถ์ด์ ๊ฑฐ๊ธฐ์ ๋๋์ง ์์์ต๋๋ค. ์ด ํ
์ด๋ธ์ ๋ํ ์๋ ์ง๊ณต ์์
์ด 15์๊ฐ ํ์ ์ข
๋ฃ๋ ํ ๋ฌผ๋ฆฌ์ ์์น๊ฐ ๋ฐํ๋์ง ์๋๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํด์ก์ต๋๋ค. ์๋น์ค๋ฅผ ์ค์งํ๊ณ VACUUM FULL์ ๋ง๋ค ์ ์์ด์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์์๋ 0.1.5 ๋์ด๋๋ ํ ์ด๋ธ๊ณผ ์ธ๋ฑ์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ ์์ ๋์ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
๋ฌธ์ XNUMX, XNUMX - ์ธ๋ฑ์ค ๋ถ์กฑ ๋ฐ ์ฌ์ฉ๋์ง ์๋ ์ธ๋ฑ์ค
๋ค์ ๋ ๊ฐ์ง ์ง๋จ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ฏธ ์์ฑํ ๊ฒ์ฒ๋ผ ์ฌ๋ฌ ๊ฐ์ ๋ณต์ ๋ณธ์ด ์๋ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉฐ ํธ์คํธ๋ง๋ค ์ฝ๊ธฐ ๋ก๋๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฆ
๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ผ๋ถ ํธ์คํธ์ ์ผ๋ถ ํ
์ด๋ธ๊ณผ ์ธ๋ฑ์ค๊ฐ ์ค์ ๋ก ์ฌ์ฉ๋์ง ์๋ ์ํฉ์ด ๋ฐ์ํ์ผ๋ฉฐ ๋ถ์์ ์ํด์๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ํธ์คํธ์์ ํต๊ณ๋ฅผ ์์งํด์ผ ํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ํตํด ์ฌ์ฉ๋์ง ์์ ์ธ๋ฑ์ค๋ฅผ ์ ๊ฑฐํ๊ณ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋ ํ ์ด๋ธ์ ๋๋ฝ๋ ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํ์ฌ ์์ญ ๊ธฐ๊ฐ๋ฐ์ดํธ๋ฅผ ์ ์ฝํ ์ ์์์ต๋๋ค.
๊ฒฐ๋ก ์ผ๋ก์
๋ฌผ๋ก ๊ฑฐ์ ๋ชจ๋ ์ง๋จ์ ๋ํด ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ผ๋ถ ์ง๋จ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์
์ ๋กค์์ํ ์งํ ๊ธฐ๋ฅ ํ
์คํธ์์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์๋ง๋ ๋ด ๋์๊ด์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋์ผ ๊ฒ์
๋๋ค. ์ฌ์ฉ ์๋ ๋ค์์์ ์ฐพ์ ์ ์์ต๋๋ค.
์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ง ์ฌ์ฉ๋์ง ์๊ฑฐ๋ ๋๋ฝ๋ ์ธ๋ฑ์ค์ ํฝ์ฐฝ์ ๋ํ ๊ฒ์ฌ๋ฅผ ์ํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค. ์์ง๋ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ๋ก๋ ์ ์์ต๋๋ค.
์ ๋ง ๊ทธ๋ฌ์ผ๋ฉด ์ข๊ฒ ์ด pg-์์ธ-๊ฑด๊ฐ ์ ์ฉํ๊ณ ์์๊ฐ ๋ง์ ๊ฒ์ ๋๋ค. ๋ฐ๊ฒฌํ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ๊ณ ์๋ก์ด ์ง๋จ์ ์ ์ํจ์ผ๋ก์จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ๊ธฐ์ฌํ ์๋ ์์ต๋๋ค.
์ถ์ฒ : habr.com