3. ์ ์ญ ์ฌ์ฉ ์ ๊ตฌ์กฐ์ ๋ณํ
์ ๋ ฌ๋ ํธ๋ฆฌ์ ๊ฐ์ ๊ตฌ์กฐ์๋ ๋ค์ํ ํน์ ์ฌ๋ก๊ฐ ์์ต๋๋ค. ์ ์ญ์ผ๋ก ์์ ํ ๋ ์ค์ฉ์ ์ธ ๊ฐ์น๊ฐ ์๋ ๊ฒ๋ค์ ๊ณ ๋ คํด ๋ณด๊ฒ ์ต๋๋ค.
3.1 ํน๋ณํ ๊ฒฝ์ฐ 1. ๊ฐ์ง๊ฐ ์๋ ํ๋์ ๋ ธ๋
์ ์ญ ๋ณ์๋ ๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉ๋ ์ ์์ ๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ ๋ณ์์ฒ๋ผ ์ฌ์ฉ๋ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์นด์ดํฐ๋ก์:
Set ^counter = 0 ; ัััะฐะฝะพะฒะบะฐ ัััััะธะบะฐ
Set id=$Increment(^counter) ; ะฐัะพะผะฐัะฝะพะต ะธะฝะบัะตะผะตะฝัะธัะพะฒะฐะฝะธะต
์ด ๊ฒฝ์ฐ ์ ์ญ์ ๊ทธ ์๋ฏธ ์ธ์๋ ๋ถ๊ธฐ๋ฅผ ๊ฐ์ง ์๋ ์์ต๋๋ค. ํ๋๋ ๋ค๋ฅธ ํ๋๋ฅผ ๋ฐฐ์ ํ์ง ์์ต๋๋ค.
3.2 ํน๋ณํ ๊ฒฝ์ฐ 2. ํ๋์ ๊ผญ์ง์ ๊ณผ ๋ง์ ๊ฐ์ง
์ผ๋ฐ์ ์ผ๋ก ์ด๋ ์ ํ์ ์ธ ํค-๊ฐ ๊ธฐ๋ฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ํํ์ ๊ฐ์ผ๋ก ์ ์ฅํ๋ฉด ๊ธฐ๋ณธ ํค๊ฐ ์๋ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ํ ์ด๋ธ์ ์ป๊ฒ ๋ฉ๋๋ค.
์ ์ญ์ ํ
์ด๋ธ์ ๊ตฌํํ๋ ค๋ฉด ์ด ๊ฐ์์ ์ง์ ํ์ ์์ฑํ ๋ค์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ญ์ ์ ์ฅํด์ผ ํฉ๋๋ค. ์ฝ์ ๋ ๋ฌธ์์ด์ ๋ค์ ์ด๋ก ๋๋ ์ ์๊ฒ ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
- ๊ตฌ๋ถ ๋ฌธ์.
Set ^t(id1) = "col11/col21/col31" Set ^t(id2) = "col12/col22/col32"
- ๊ฐ ํ๋๊ฐ ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋ ๋ฐ์ดํธ ์๋ฅผ ์ฐจ์งํ๋ ์๊ฒฉํ ๋ฐฉ์์ ๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
- ๊ฐ์ ๋ฌธ์์ด์ ์์ฑํ๋ ํน์ ํจ์ $LB(์บ์์์ ์ฌ์ฉ ๊ฐ๋ฅ).
Set ^t(id1) = $LB("col11", "col21", "col31") Set ^t(id2) = $LB("col12", "col22", "col32")
ํฅ๋ฏธ๋กญ๊ฒ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด์กฐ ์ธ๋ฑ์ค์ ์ ์ฌํ ์์ ์ ์ํํ๊ธฐ ์ํด ์ ์ญ์ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ ต์ง ์์ต๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ์ธ๋ฑ์ค ์ ์ญ์ด๋ผ๊ณ ๋ถ๋ฅด์. ์ธ๋ฑ์ค ๊ธ๋ก๋ฒ์ ๊ธฐ๋ณธ ๊ธ๋ก๋ฒ์ ๊ธฐ๋ณธ ํค์ ์ผ๋ถ๊ฐ ์๋ ํ๋๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๊ธฐ ์ํ ๋ณด์กฐ ํธ๋ฆฌ์ ๋๋ค. ์ด๋ฅผ ์์ฑํ๊ณ ์ฌ์ฉํ๋ ค๋ฉด ์ถ๊ฐ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ด์ ์ ์ญ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
Set ^i("col11", id1) = 1
Set ^i("col12", id2) = 1
์ด์ ์ฒซ ๋ฒ์งธ ์ด์ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ค๋ฉด ์ ์ญ์ ์ดํด๋ด์ผ ํฉ๋๋ค. ^i ์ฒซ ๋ฒ์งธ ์ด์ ์ํ๋ ๊ฐ์ ํด๋นํ๋ ๊ธฐ๋ณธ ํค(id)๋ฅผ ์ฐพ์ต๋๋ค.
๊ฐ์ ์ฝ์ ํ๋ฉด ํ์ ํ๋์ ๋ํ ๊ฐ๊ณผ ์ธ๋ฑ์ค ์ ์ญ์ ์ฆ์ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ขฐ์ฑ์ ์ํด ๋ชจ๋ ๊ฒ์ ํธ๋์ญ์ ์ผ๋ก ๋ง๋ฌด๋ฆฌํ๊ฒ ์ต๋๋ค.
TSTART
Set ^t(id1) = $LB("col11", "col21", "col31")
Set ^i("col11", id1) = 1
TCOMMIT
M์์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ธ๋ถ ์ ๋ณด
ํ ์ฝ์ /์ ๋ฐ์ดํธ/์ญ์ ๊ธฐ๋ฅ์ด COS/M์ ์์ฑ๋๊ณ ์ปดํ์ผ๋๋ฉด ์ด๋ฌํ ํ ์ด๋ธ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋งํผ ๋น ๋ฅด๊ฒ ์๋ํฉ๋๋ค(๋๋ ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ).TSTART ๋ฐ TCOMMIT ๋ช ๋ น(ํธ๋์ญ์ ) ์ฌ์ฉ์ ํฌํจํ์ฌ ํ๋์ XNUMX์ด ํ ์ด๋ธ์ ๋ํ ๋๋ INSERT ๋ฐ SELECT ํ ์คํธ๋ฅผ ํตํด ์ด ๋ช ๋ น๋ฌธ์ ํ์ธํ์ต๋๋ค.
๋์ ์ก์ธ์ค ๋ฐ ๋ณ๋ ฌ ํธ๋์ญ์ ์ด ํฌํจ๋ ๋ ๋ณต์กํ ์๋๋ฆฌ์ค๋ ํ ์คํธํ์ง ์์์ต๋๋ค.
ํธ๋์ญ์
์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ ์ฝ์
๋น์จ์ ๋ฐฑ๋ง ๊ฐ๋น ์ด๋น 778๊ฐ์ ์ฝ์
์
๋๋ค.
300์ต ๊ฐ์ ๊ฐ - ์ด๋น 422๊ฐ์ ์ฝ์
.
ํธ๋์ญ์
์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ - 572M ์ฝ์
์ ๊ฒฝ์ฐ ์ด๋น 082 ์ฝ์
์
๋๋ค. ๋ชจ๋ ์์
์ ์ปดํ์ผ๋ M ์ฝ๋์์ ์ํ๋์์ต๋๋ค.
ํ๋๋์คํฌ๋ SSD๊ฐ ์๋ ์ผ๋ฐ ํ๋์
๋๋ค. ๋ค์ ์ฐ๊ธฐ ๊ธฐ๋ฅ์ด ์๋ RAID5. ํ๋ II 1100T ํ๋ก์ธ์.
๋น์ทํ ๋ฐฉ์์ผ๋ก SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ
์คํธํ๋ ค๋ฉด ๋ฃจํ์์ ์ฝ์
์ ์ํํ๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. MySQL 5.5(InnoDB ์คํ ๋ฆฌ์ง)๋ฅผ ํ
์คํธํ ๋ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ด๋น 11K ์ดํ์ ์ฝ์
์ ์์ ํ์ต๋๋ค.
์, ์ ์ญ ํ
์ด๋ธ ๊ตฌํ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ๋ ๋ณต์กํด ๋ณด์
๋๋ค. ๋ฐ๋ผ์ ์ ์ธ๊ณ์ ์ฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ํ ํ์ ๋ฐ์ดํฐ ์์
์ ๋จ์ํํ๊ธฐ ์ํ SQL ์ก์ธ์ค ๊ถํ์ด ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ์คํค๋ง๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๊ณ ์ฝ์
์๋๊ฐ ์ค์ํ์ง ์์ผ๋ฉฐ ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ๊ทํ๋ ํ
์ด๋ธ ํ์์ผ๋ก ์ฝ๊ฒ ํํ๋ ์ ์๋ค๋ฉด ๋ ๋์ ์์ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ฏ๋ก SQL ์์
์ด ๋ ์ฝ์ต๋๋ค. .
์ด ํน๋ณํ ๊ฒฝ์ฐ์ ๋๋ ๋ค์์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์์ต๋๋ค. ์ ์ญ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํ ์์ฑ์ ์ญํ ์ ํ ์ ์์ต๋๋ค.. ๋ค๋ฅธ ์ธ์ด๋ฅผ ์์ฑํ ์ ์๋ ์ด์
๋ธ๋ฌ์ ๊ฐ์ต๋๋ค. ๋ค์์ ์ ์ญ์์ ์๋ ๋ก๊ทธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์
๋๋ค.
์ต์ํ์ ๋
ธ๋ ฅ์ผ๋ก ์ผ์ข
์ ๋นํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํด์ผ ํ๋ค๋ฉด ์ ์ญ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
3.3 ํน๋ณํ ๊ฒฝ์ฐ 3. XNUMX๋ ๋ฒจ ํธ๋ฆฌ, ๋ ๋ฒ์งธ ๋ ๋ฒจ์ ๊ฐ ๋ ธ๋๋ ๊ณ ์ ๋ ์์ ๊ฐ์ง๋ฅผ ๊ฐ์ง
์๋ง๋ ์ง์ํ์
จ์ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์ ์ญ ํ
์ด๋ธ์ ๋์ฒด ๊ตฌํ์
๋๋ค. ์ด ๊ตฌํ์ ์ด์ ๊ตฌํ๊ณผ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
XNUMX๋จ๊ณ ํธ๋ฆฌ์ ํ ์ด๋ธ๊ณผ ๋จ์ผ ๋ ๋ฒจ ํธ๋ฆฌ์์.
์ฃ์ ํ์
ํ๋ก
- ๋ ธ๋ ์๋ฅผ ์ด ์์ ๋์ผํ๊ฒ ์ค์ ํด์ผ ํ๋ฏ๋ก ์ฝ์ ์๋๊ฐ ๋๋ ค์ง๋๋ค.
- ๋ ๋ง์ ๋์คํฌ ๊ณต๊ฐ์ ์๋นํฉ๋๋ค. ์ด ์ด๋ฆ์ด ์๋ ๊ธ๋ก๋ฒ ์ธ๋ฑ์ค(๋ฐฐ์ด ์ธ๋ฑ์ค๋ก ์ดํด๋จ)๋ ๋์คํฌ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ๊ฐ ํ์ ๋ํด ๋ณต์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋ฌธ์์ด์ ๊ตฌ๋ฌธ ๋ถ์ํ ํ์๊ฐ ์์ผ๋ฏ๋ก ๊ฐ๋ณ ์ด์ ๊ฐ์ ๋ ๋น ๋ฅด๊ฒ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ด ํ ์คํธ์ ๋ฐ๋ฅด๋ฉด 11,5๊ฐ ์ด์์๋ 2% ๋ ๋น ๋ฅด๋ฉฐ ๋ ๋ง์ ์์ ์ด์์๋ ๋ ๋น ๋ฆ ๋๋ค.
- ๋ฐ์ดํฐ ์คํค๋ง ๋ณ๊ฒฝ์ด ๋ ์ฌ์์ง
- ๋์ฑ ๋ช ํํ ์ฝ๋
๊ฒฐ๋ก : ๋ชจ๋ ์ฌ๋์ ์ํ ๊ฒ์ ์๋๋๋ค. ์๋๋ ์ ์ญ์ ๊ฐ์ฅ ์ค์ํ ์ด์ ์ค ํ๋์ด๊ธฐ ๋๋ฌธ์ ์ด ๊ตฌํ์ ์ฌ์ฉํ๋ ๋ฐ๋ ๊ฑฐ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์๋ํ๋ฉด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์ํ๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
3.4 ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ. ๋๋ฌด์ ์ ๋ ฌ๋ ๋๋ฌด
ํธ๋ฆฌ๋ก ํํ๋ ์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ ์ญ์ ์๋ฒฝํ๊ฒ ๋ง์ต๋๋ค.
3.4.1 ํ์ ๊ฐ์ฒด๊ฐ ์๋ ๊ฐ์ฒด
์ด๊ฒ์ ๊ธ๋ก๋ฒ์ ์ ํต์ ์ธ ์ฌ์ฉ ์์ญ์
๋๋ค. ์๋ฃ๋ถ์ผ์๋ ์๋ง์ ์ง๋ณ, ์ฝ๋ฌผ, ์ฆ์, ์น๋ฃ๋ฐฉ๋ฒ์ด ์กด์ฌํฉ๋๋ค. ๊ฐ ํ์์ ๋ํด ๋ฐฑ๋ง ๊ฐ์ ํ๋๊ฐ ์๋ ํ
์ด๋ธ์ ๋ง๋๋ ๊ฒ์ ๋นํฉ๋ฆฌ์ ์
๋๋ค. ๋ํ ํ๋์ 99%๊ฐ ๋น์ด ์์ต๋๋ค.
"ํ์" ~ 100๊ฐ ํ๋, "์ํ" - 000๊ฐ ํ๋, "์น๋ฃ" - 100๊ฐ ํ๋, "ํฉ๋ณ์ฆ" - 000๊ฐ ํ๋ ๋ฑ์ ํ ์ด๋ธ๋ก ๊ตฌ์ฑ๋ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ํด ๋ณด์ธ์. ๋ฑ๋ฑ. ๋๋ ํน์ ์ ํ์ ํ์์ ๋ํ ์์ฒ ๊ฐ์ ํ ์ด๋ธ(๊ฒน์น ์ ์์!), ์น๋ฃ, ์ฝ๋ฌผ ๋ฐ ์ด๋ฌํ ํ ์ด๋ธ ๊ฐ์ ์ฐ๊ฒฐ์ ์ํ ์์ฒ ๊ฐ์ ์ถ๊ฐ ํ ์ด๋ธ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
Globals๋ ๋น ์ด์ ์ถ๊ฐ ๋์คํฌ ๊ณต๊ฐ์ ๋ญ๋นํ์ง ์๊ณ ๊ฐ ํ์์ ๋ณ๋ ฅ, ๋ค์ํ ์น๋ฃ๋ฒ ๋ฐ ์ฝ๋ฌผ ์์ฉ์ ๋ํ ์ ํํ ์ค๋ช ์ ๋๋ฌด ํํ๋ก ์์ฑํ ์ ์์ผ๋ฏ๋ก ์ํ์ ์ด์์ ์ ๋๋ค. ๊ด๊ณํ ๊ฒฝ์ฐ์ ํด๋นํฉ๋๋ค.
๊ธ๋ก๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฌ๋์ ๋ํ ๋ฐ์ดํฐ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค., ๊ณ ๊ฐ์ ๋ํ ๋ค์ํ ์ ๋ณด๋ฅผ ์ต๋ํ ์ถ์ ํ๊ณ ์ฒด๊ณํํ๋ ๊ฒ์ด ์ค์ํ ๊ฒฝ์ฐ. ์ด๋ ์ํ, ์ํ, ๋ง์ผํ
, ๋ณด๊ด ๋ฐ ๊ธฐํ ๋ถ์ผ์์ ์์๊ฐ ๋ง์ต๋๋ค.
.
๋ฌผ๋ก SQL์์๋ ๋ช ๊ฐ์ ํ
์ด๋ธ๋ง์ผ๋ก ํธ๋ฆฌ๋ฅผ ์๋ฎฌ๋ ์ดํธํ ์๋ ์์ต๋๋ค(
๊ฑฐ๋ํ ํ ์ด๋ธ(ALTER TABLE)์์ ๋ฐ์ดํฐ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๋ค๋ ๊ฒ์ ๋น๋ฐ์ด ์๋๋๋ค. ์๋ฅผ ๋ค์ด MySQL์ ์ด์ ํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ์ ํ ์ด๋ธ๋ก ์์ ํ ๋ณต์ฌํ์ฌ ALTER TABLE ADD|DROP COLUMN์ ์ํํฉ๋๋ค(ํ ์คํธ๋ MyISAM, InnoDB ์์ง). ๋ช ์ฃผ๊ฐ ์๋๋๋ผ๋ ๋ฉฐ์น ๋์ ์์ญ์ต ๊ฐ์ ๋ ์ฝ๋๊ฐ ํฌํจ๋ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ค๋จ๋ ์ ์์ต๋๋ค.
์ ์ญ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋น์ฉ์ด ์ ํ ๋ค์ง ์์ต๋๋ค. ์ธ์ ๋ ์ง ๊ณ์ธต ๊ตฌ์กฐ์ ๋ชจ๋ ์์ค์์ ๊ฐ์ฒด์ ํ์ํ ์ ์์ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ถ๊ธฐ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ์ ๊ด๋ จ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํ๋ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์๋ง์ ์ ํ์ ์์ฑ์ด ํฌํจ๋ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ ์ ์ญ ๋ณ์๊ฐ ํ์ํ ์ ํ์
๋๋ค.
๋ํ ์ ์ญ์์ ๋ชจ๋ ๊ฒฝ๋ก๋ B-ํธ๋ฆฌ์ด๋ฏ๋ก ๋ชจ๋ ์์ฑ์ ๋ํ ์ก์ธ์ค๋ ์ฆ๊ฐ์ ์ด๋ผ๋ ์ ์ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ธ๋ก๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณ์ธต์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋ฌธ์ ์ค์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ์ค์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๋ฃ ๊ธฐ๋ก ์ ์ฅ ๋ถ์ผ์์ ๊ธ๋ก๋ฒ ๊ธฐ์ ๊ณผ ๊ฒฝ์ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฌ์ ํ ์์ ํ ๋๊ฐ์ง๋ ์์์๋น๊ต๋ฅผ ์ํด MongoDB๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋๋ฉ์ธ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ ์ญ์ ํจ๋ฐฐํฉ๋๋ค.
- ๋ฌธ์ ํฌ๊ธฐ. ์ ์ฅ ๋จ์๋ ์ต๋ ์ฉ๋์ด ์ฝ 16MB์ธ JSON(๋ณด๋ค ์ ํํ๊ฒ๋ BSON) ํ์์ ํ ์คํธ์ ๋๋ค. ๊ฑฐ๋ํ JSON ๋ฌธ์๊ฐ JSON ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ํ ํ๋์์ ์ก์ธ์ค๋๋ ๊ฒฝ์ฐ JSON ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ตฌ๋ฌธ ๋ถ์ ์ค์ ๋๋ ค์ง์ง ์๋๋ก ํน๋ณํ ์ ํ์ด ์ ์ฉ๋์์ต๋๋ค. ์ด ๋ฌธ์์๋ ํ์์ ๋ํ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ํ์ ๊ธฐ๋ก์ด ์ผ๋ง๋ ๋๊บผ์ด์ง ์๊ณ ์์ต๋๋ค. 16MB์ ์ต๋ ์นด๋ ํฌ๊ธฐ๋ก ์ธํด MRI ํ์ผ, X-ray ์ค์บ ๋ฐ ๊ธฐํ ์ฐ๊ตฌ๊ฐ ํฌํจ๋ ์ง๋ณ ์นด๋๋ฅผ ๊ฐ์ง ํ์์ ๊ฒฝ์ฐ ์ฆ์ ์ข ๋ฃ๋ฉ๋๋ค. ๊ธ๋ก๋ฒ์ ํ ์ง์ ์์๋ ๊ธฐ๊ฐ๋ฐ์ดํธ ๋ฐ ํ ๋ผ๋ฐ์ดํธ์ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์์น์ ์ผ๋ก๋ ์ด๋ฅผ ๋๋ผ ์ ์์ง๋ง ๊ณ์ํ๊ฒ ์ต๋๋ค.
- ํ์ ์ฐจํธ์ ์๋ก์ด ์์ฑ์ด ์์/๋ณ๊ฒฝ/์ญ์ ๋ ์๊ฐ์ ๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ์ฒด ๋งต์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ๊ณ (์ด๊ฒ์ ๋ง์ ์์ ๋๋ค!) BSON์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ , ์ ๋ ธ๋๋ฅผ ์ถ๊ฐ/๋ณ๊ฒฝ/์ญ์ ํ๊ณ , ์ธ๋ฑ์ค๋ฅผ ์ ๋ฐ์ดํธํ๊ณ , BSON์ผ๋ก ์์ถํ๊ณ , ๋์คํฌ์ ์ ์ฅํด์ผ ํฉ๋๋ค. ์ ์ญ์ ํน์ ์์ฑ์ ์ก์ธ์คํ๊ณ ์ด๋ฅผ ์กฐ์ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
- ๊ฐ๋ณ ์์ฑ์ ๋น ๋ฅด๊ฒ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ฌธ์์ ์์ฑ์ด ๋ง๊ณ ๋ค๋จ๊ณ ๊ตฌ์กฐ๊ฐ ์์ผ๋ฉด ์ ์ญ์ ๊ฐ ๊ฒฝ๋ก๊ฐ B-ํธ๋ฆฌ์ด๋ฏ๋ก ๊ฐ๋ณ ์์ฑ์ ๋ํ ์ก์ธ์ค๊ฐ ๋ ๋นจ๋ผ์ง๋๋ค. BSON์์๋ ์ํ๋ ์์ฑ์ ์ฐพ๊ธฐ ์ํด ๋ฌธ์๋ฅผ ์ ํ์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํด์ผ ํฉ๋๋ค.
3.3.2 ์ฐ๊ด๋ฐฐ์ด
์ฐ๊ด ๋ฐฐ์ด(์ค์ฒฉ ๋ฐฐ์ด ํฌํจ)์ ์ ์ญ์ ์๋ฒฝํ๊ฒ ๋ง์ต๋๋ค. ์๋ฅผ ๋ค์ด, PHP์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ทธ๋ฆผ 3.3.1์ ํ์๋ฉ๋๋ค.
$a = array(
"name" => "Vince Medvedev",
"city" => "Moscow",
"threatments" => array(
"surgeries" => array("apedicectomy", "biopsy"),
"radiation" => array("gamma", "x-rays"),
"physiotherapy" => array("knee", "shoulder")
)
);
3.3.3 ๊ณ์ธต์ ๋ฌธ์: XML, JSON
๋ํ ์ ์ญ์ ์ฝ๊ฒ ์ ์ฅ๋ฉ๋๋ค. ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐฐ์นํ์ฌ ๋ณด๊ดํ ์ ์์ต๋๋ค.
XML
XML์ ์ ์ญ์ผ๋ก ๋ถํดํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ํ๊ทธ ์์ฑ์ ๋
ธ๋์ ์ ์ฅํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๊ทธ ์์ฑ์ ๋ํ ๋น ๋ฅธ ์ก์ธ์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ ํด๋น ์์ฑ์ ๋ณ๋์ ๋ถ๊ธฐ๋ก ์ด๋ํ ์ ์์ต๋๋ค.
<note id=5>
<to>ะะฐัั</to>
<from>ะกะฒะตัะฐ</from>
<heading>ะะฐะฟะพะผะธะฝะฐะฝะธะต</heading>
<body>ะะพะทะฒะพะฝะธ ะผะฝะต ะทะฐะฒััะฐ!</body>
</note>
COS์์๋ ๋ค์ ์ฝ๋์ ํด๋นํฉ๋๋ค.
Set ^xml("note")="id=5"
Set ^xml("note","to")="ะกะฐัะฐ"
Set ^xml("note","from")="ะกะฒะตัะฐ"
Set ^xml("note","heading")="ะะฐะฟะพะผะธะฝะฐะฝะธะต"
Set ^xml("note","body")="ะะพะทะฒะพะฝะธ ะผะฝะต ะทะฐะฒััะฐ!"
์ฐธ๊ณ : XML, JSON, ์ฐ๊ด ๋ฐฐ์ด์ ๊ฒฝ์ฐ ์ ์ญ์ ํ์ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ผ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ ธํธ ํ๊ทธ์ ํ์ ํ๊ทธ์ ์์๋ฅผ ๋ฐ์ํ์ง ๋ชปํ์ต๋๋ค. ์ ์ธ๊ณ์ ์ผ๋ก ^xml ํ์ ํ๊ทธ๋ ์ํ๋ฒณ ์์๋ก ํ์๋ฉ๋๋ค. ์์๋ฅผ ์๊ฒฉํ๊ฒ ๋ฐ์ํ๋ ค๋ฉด ์๋ฅผ ๋ค์ด ๋ค์ ํ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
JSON.JSON
์น์
3.3.1์ ์ฒซ ๋ฒ์งธ ๊ทธ๋ฆผ์ ์ด JSON ๋ฌธ์๋ฅผ ๋ฐ์ํ โโ๊ฒ์
๋๋ค.
var document = {
"name": "Vince Medvedev",
"city": "Moscow",
"threatments": {
"surgeries": ["apedicectomy", "biopsy"],
"radiation": ["gamma", "x-rays"],
"physiotherapy": ["knee", "shoulder"]
},
};
3.3.4 ๊ณ์ธต์ ๊ด๊ณ๋ก ์ฐ๊ฒฐ๋ ๋์ผํ ๊ตฌ์กฐ
์: ์์ ์ฌ๋ฌด์ ๊ตฌ์กฐ, MLM ๊ตฌ์กฐ์ ์๋ ์ฌ๋๋ค์ ์์น, ์ฒด์ค ์คํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐ๋ทํฉ๋๋ค. ์คํธ๋กํฌ ํ ์ถ์ ๊ฐ์ ์ ์ญ ๋ ธ๋์ ์ธ๋ฑ์ค ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ์์ง์์ ์ ํํ๋ ค๋ฉด ๊ฐ์ฅ ํฐ ๊ฐ์ค์น๋ฅผ ๊ฐ๋ ์ง์ ์ ์ ํํ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ๊ธ๋ก๋ฒ์์๋ ๊ฐ ๋ ๋ฒจ์ ๋ชจ๋ ๋ถ๊ธฐ๊ฐ ์ด๋ ๊ฐ๋์ ๋ฐ๋ผ ์ ๋ ฌ๋ฉ๋๋ค.
์์
์ฌ๋ฌด์์ ๊ตฌ์กฐ, MLM์ ์ฌ๋๋ค์ ๊ตฌ์กฐ. ๋
ธ๋๋ ์ ์ฒด ํ์ ํธ๋ฆฌ์ ํน์ฑ์ ๋ฐ์ํ๋ ํน์ ์บ์ฑ ๊ฐ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ํ์ ํธ๋ฆฌ์ ํ๋งค๋์
๋๋ค. ์ธ์ ๋ ์ง ์ฐ๋ฆฌ๋ ๊ฐ ๋ถ์ผ์ ์ฑ๊ณผ๋ฅผ ๋ฐ์ํ๋ ์์น๋ฅผ ์ป์ ์ ์์ต๋๋ค.
4. ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ด๋ค ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์ ์ตํฉ๋๊น?
์ฒซ ๋ฒ์งธ ์ด์ ์ ์ญ์ ์ฌ์ฉํ์ฌ ์๋นํ ์๋ ํฅ์์ ์ป์ ์ ์๋ ์ฌ๋ก๋ฅผ ์ ์ํ๊ณ , ๋ ๋ฒ์งธ ์ด์ ๋์์ธ์ด๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ๋จ์ํ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์๋
๋ฐ์ดํฐ ์ฒ๋ฆฌ/ํํ์ ์ฉ์ด์ฑ
- ์ฝ์ [๋ ๋ฒจ๋ณ ์๋์ ๋ ฌ], [๋ง์คํฐํค๋ณ ์ธ๋ฑ์ฑ]
- ํ์ ํธ๋ฆฌ ์ ๊ฑฐ
- ๊ฐ๋ณ ์ก์ธ์ค๊ฐ ํ์ํ ์ค์ฒฉ๋ ์์ฑ์ด ๋ง์ ๊ฐ์ฒด
- ์กด์ฌํ์ง ์๋ ๋ถ๊ธฐ๋ผ๋ ๋ชจ๋ ๋ถ๊ธฐ์์ ํ์ ๋ถ๊ธฐ๋ฅผ ์ฐํํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๊ณ์ธต์ ๊ตฌ์กฐ
- ํ์ ํธ๋ฆฌ์ ๊น์ด ์ฐ์ ์ํ
- ์๋ง์ ์ ํ์ [๋ฐ/๋๋ ์ค์ฒฉ๋] ์์ฑ/์ํฐํฐ๊ฐ ์๋ ๊ฐ์ฒด/์ํฐํฐ
- ์คํค๋ง ์๋ ๋ฐ์ดํฐ. ์๋ก์ด ์์ฑ์ด ์์ฃผ ๋ํ๋๊ณ ์ค๋๋ ์์ฑ์ ์ฌ๋ผ์ง ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
- ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋ฐ ์์ฌ๊ฒฐ์ ํธ๋ฆฌ. ๊ฒฝ๋ก๋ฅผ ํธ๋ฆฌ๋ก ํํํ๋ ๊ฒ์ด ํธ๋ฆฌํ ๊ฒฝ์ฐ.
- ์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ณ์ธต ๊ตฌ์กฐ ์ ๊ฑฐ
ํ์ฅ
์ฑ
์ ๋ถ์ธ: ์ด ๊ธฐ์ฌ์ ์ด์ ๋ํ ๋ด ์๊ฒฌ์ ๋ด ์๊ฒฌ์ด๋ฉฐ InterSystems Corporation์ ๊ณต์ ์
์ฅ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
์ถ์ฒ : habr.com