- 1) ์ค๋ฉ(Sharding)์ด๋?
- 1.1) ์ค๋ฉ์ ํ์์ฑ
- 1.2) ์ค๋ฉ์ ์ข ๋ฅ
- 2) MongoDB ์ค๋ฉ ์ํคํ
์ฒ
- 2.1) ์ปจํผ๊ทธ ์๋ฒ
- ์ปจํผ๊ทธ ์๋ฒ์ ๋ณต์ ๋ฐฉ์
- 2.1) ์ปจํผ๊ทธ ์๋ฒ
- 2.2) ๋ผ์ฐํฐ
- ์ฃผ์ ์ญํ
- ์ฟผ๋ฆฌ ๋ถ์ฐ
- ๋ฐฐํฌ
- 3) ์ค๋ฉ ์๊ณ ๋ฆฌ์ฆ
- ์ฒญํฌ
- 3.1) ๋ ์ธ์ง ์ค๋ฉ(Range Sharding)
- 3.2) ํด์ ์ค๋ฉ(Hashed Sharding)
- ์ ์ฝ ์ฌํญ
- 3.3) ์ง์ญ ๊ธฐ๋ฐ ์ค๋ฉ(Zone Sharding)
- ์ฌ์ฉ ๋ชฉ์
- 4) ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋
- 5) ์ฒญํฌ ๋ฐธ๋ฐ์ฑ
- 5.1) ์ค๋ ํด๋ฌ์คํฐ ๋ฐธ๋ฐ์
- 5.2) ์ฒญํฌ ์คํ๋ฆฟ(Chunk split)
- 6) ์ค๋ฉ์ผ๋ก ์ธํ ์ ์ฝ
- 6.1) ํธ๋์ญ์
- 6.2) ์ค๋ฉ๊ณผ ์ ๋ํฌ ์ธ๋ฑ์ค
- 6.3) ์กฐ์ธ๊ณผ ๊ทธ๋ํ ์ฟผ๋ฆฌ
- ์ฐธ๊ณ ์๋ฃ
1) ์ค๋ฉ(Sharding)์ด๋?
์ค๋ฉ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐํด์ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ๊ธฐ์ ์ ๋งํ๋ค.
MongoDB์ ๋ณต์ ๋ ๊ณ ๊ฐ์ฉ์ฑ์ ์ํ ์๋ฃจ์ ์ด๋ฉฐ, ์ค๋ฉ์ ๋ถ์ฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์๋ฃจ์ ์ด๋ค.
MongoDB์ ์ค๋ฉ์ ์ ์ฉํ๋ ค๋ฉด ์ค๋ ํด๋ฌ์คํฐ(Sharded Cluster)๋ฅผ ๊ตฌ์ถํด์ผ ํ๋ค.
- ๋ผ์ฐํฐ(Router)
- ์ค๋ ์๋ฒ(Shard server)
- ์ปจํผ๊ทธ ์๋ฒ(Config server)
1.1) ์ค๋ฉ์ ํ์์ฑ
๊ธฐ์ ๋ฐ์ ์ ๋ฐ๋ผ ์ธํฐ๋ท์ด ๊ฐ๋ฅํ ๋จ๋ง๊ธฐ๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋๊ณ ์๋ค. ๊ทธ๋งํผ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ง์ด ์ถ์๋๊ณ , ๋ช๋ฐฑ๋ง ๋ช์ฒ๋ง์ ์ฌ์ฉ์๋ฅผ ํ๋ณดํ๋ ๊ฒ๋ ์์ฟ์ผ์ด๋ค.
๊ทธ๋งํผ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ด ์ค์ํด์ก๋ค.
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์๋ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ฏ๋ก ๋จ์ํ ์๋ฒ๋ง ํฌ์ ํ๋ค๊ณ ํด์ ํ์ฅ๋์ง๋ ์๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ฅผ ํ์ฅํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ์ฐ๋ ์ ์๊ฒ ๋ฏธ๋ฆฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ค๊ณํ๊ณ ๊ฐ๋ฐํด์ผ ํ๋๋ฐ ์ด๋ฅผ ์ค๋ฉ์ด๋ผ๊ณ ํ๋ค.
์ฒ์์ ์ค๋ฉ์ ๊ณ ๋ คํ์ง ์์๋ ์๋น์ค์์ ์ค๋ฉ์ ํ์์ฑ์ ๋๋๋ค → ์ด๋ฏธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฒ๋ฆฌ๋ ํ๊ณ์ ๋ค๋ค๋ฆ
๊ฐ๋ฐ ์์ฐ์ฑ vs ๋ง์ ์ฌ์ฉ๋ ๋๋ ๋ง. ์ฒ์๋ถํฐ ์ค๋ฉ์ ์ ์ฉํ ์ง์ ๋ํ ๊ณ ๋ ค ์ฌํญ์ ํผํ ์ ์๋ ์ค๊ณ ๊ณผ์ ์ด๋ค.
1.2) ์ค๋ฉ์ ์ข ๋ฅ
์ข ๋ฅํน์ง
1 | ์ํ(Horizontal) ์ผ๋ฐ์ ์ธ ๋ฐฉ์ |
ํ๋์ ์ปฌ๋ ์
์ ์ ์ฅ๋ ๋ํ๋จผํธ๋ค์ ์์ญ๋ณ๋ก ํํฐ์
๋ํด์ 1/N๊ฐ์ฉ ๊ฐ ์ค๋๊ฐ ๋๋ ๊ฐ์ง๋ ๋ฐฉ์
|
2 | ์์ง(Vertical) | ๊ธฐ๋ฅ๋ณ๋ก ์ปฌ๋ ์
์ ๊ทธ๋ฃนํํ์ฌ ๊ทธ๋ฃน๋ณ๋ก ์ค๋๋ฅผ ํ ๋น ์ฅ์
|
2) MongoDB ์ค๋ฉ ์ํคํ ์ฒ
- ๋ผ์ฐํฐ(Router)
- ์๊ตฌ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง์ง ์์
- ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๋ฅผ ์ด๋ค ์ค๋๋ก ์ ๋ฌํ ์ง ์ ํ๊ณ , ๊ฐ ์ค๋๋ก๋ถํฐ ๋ฐ์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํด์ ์ฌ์ฉ์์๊ฒ ๋๋๋ ค์ฃผ๋ ์ญํ
- ์ค๋๊ฐ ์ฒญํฌ ๋ฐธ๋ฐ์ฑ ๋ฐ ์ฒญํฌ ์คํ๋ฆฟ ์ํ
- ์ผ์ข ์ ํ๋ก์ ์ญํ
- ์ค๋ ์๋ฒ(Shard server)
- ์๊ตฌ์ ๋ฐ์ดํฐ ์ ์ฅ
- ์ค์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ ์ ์ฅ
- ์ปจํผ๊ทธ ์๋ฒ(Config server)
- ์๊ตฌ์ ๋ฐ์ดํฐ ์ ์ฅ
- ์ค๋ ์๋ฒ์ ์ ์ฅ๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์คํ๋ฆฟ ๋์ด์ ๋ถ์ฐ๋ผ ์๋์ง์ ๊ดํ ๋ฉํ ์ ๋ณด๋ฅผ ์ ์ฅ
์ฒญํฌ(Chunk) : ์ปฌ๋ ์ ์ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ํํฐ์ ํ๊ณ ๊ฐ ์กฐ๊ฐ์ ์ฌ๋ฌ ์ค๋ ์๋ฒ์ ๋ถ์ฐํด์ ์ ์ฅํ๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ์ฒญํฌ๋ผ๊ณ ํ๋ค.
๋ผ์ฐํฐ ๊ฒฐ๊ณผ ๋ฐํ ๊ณผ์
- ์ฌ์ฉ์ ์ฟผ๋ฆฌ๊ฐ ์ฐธ์กฐํ๋ ์ปฌ๋ ์
์ ์ฒญํฌ ๋ฉํ ์ ๋ณด๋ฅผ ์ปจํผ๊ทธ ์๋ฒ๋ก๋ถํฐ ๊ฐ์ ธ์์ ๋ผ์ฐํฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์บ์
- (๋ผ์ฐํฐ๊ฐ ์ฒญํฌ ๋ฉํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๊ฑฐ๋, ์ฒญํฌ ๋ฉํ ์ ๋ณด๊ฐ ์ค๋๋ผ์ ๋ง์ง ์์ ๋์๋ง ์ํ๋จ) → ์ปจํผ๊ทธ ์๋ฒ๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ์ ๋ถํ๊ฐ ๊ฑฐ์ ์๋ ์ํ๋ฅผ ์ ์ง
- ์ฌ์ฉ์ ์ฟผ๋ฆฌ์ ์กฐ๊ฑด์์ ์ค๋ฉ ํค ์กฐ๊ฑด์ ์ฐพ์
- ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ค๋ฉ ํค๊ฐ ์์ผ๋ฉด ํด๋น ์ค๋ฉ ํค๊ฐ ํฌํจ๋ ์ฒญํฌ ์ ๋ณด๋ฅผ ๋ผ์ฐํฐ์ ์บ์์์ ๊ฒ์ํ์ฌ ํด๋น ์ค๋ ์๋ฒ๋ก๋ง ์ค์ฉ์ ์ฟผ๋ฆฌ ์์ฒญ
- ์ค๋ฉ ํค ์กฐ๊ฑด์ ํฌํจ๋ ์ฒญํฌ๊ฐ ์ฌ๋ฌ ์ค๋์ ๊ฑธ์ณ ์๋ค๋ฉด ๋์์ด ๋๋ ์ฌ๋ฌ ์ค๋ ์๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์์ฒญ
- ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ค๋ฉ ํค๊ฐ ์์ผ๋ฉด ๋ชจ๋ ์ค๋ ์๋ฒ๋ก ์ฌ์ฉ์์ ์ฟผ๋ฆฌ ์์ฒญ
- ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ค๋ฉ ํค๊ฐ ์์ผ๋ฉด ํด๋น ์ค๋ฉ ํค๊ฐ ํฌํจ๋ ์ฒญํฌ ์ ๋ณด๋ฅผ ๋ผ์ฐํฐ์ ์บ์์์ ๊ฒ์ํ์ฌ ํด๋น ์ค๋ ์๋ฒ๋ก๋ง ์ค์ฉ์ ์ฟผ๋ฆฌ ์์ฒญ
- ์ฟผ๋ฆฌ๋ฅผ ์ ์กํ ๋์ ์ค๋ ์๋ฒ๋ก๋ถํฐ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ๋์ฐฉํ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ณํฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
2.1) ์ปจํผ๊ทธ ์๋ฒ
์ค๋ฉ๋ ํด๋ฌ์คํฐ๋ฅผ ์ด์ํ๋ ๋ฐ ์์ด์ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ์ฅ (databases, collections, chunks, chards, mongos)
์ผ๋ฐ์ ์ผ๋ก ๋ผ์ฐํฐ(mongos)๋ฅผ ์ด์ฉํด์ MongoDB ํด๋ฌ์คํฐ์ ๋ก๊ทธ์ธํ ๋ค์ 'config' ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ๋ฉด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์๋ค. ์ฆ ๋ผ์ฐํฐ์ 'config'๋ ์ปจํผ๊ทธ ์๋ฒ๋ก ์ ์ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋๋ค. ๊ทธ ์ด์ธ์ ๋ชจ๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ปฌ๋ ์ ์ ์ค๋ ์๋ฒ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฒญํ๋ค.
์ปจํผ๊ทธ ์๋ฒ์ ๋ณต์ ๋ฐฉ์
- SCCC(Sync Cluster Connection Config) - 3.2 ๋ฒ์ ๋ถํฐ Deprecated
- ๋ฏธ๋ฌ๋ง ๋ฐฉ์์ผ๋ก ์ปจํผ๊ทธ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํ
- ๋ฏธ๋ฌ๋ง ๋ฐฉ์: ์๋ก ์ ํ ๊ด๊ณ ์์ด ์๋ํ๋ ์ปจํผ๊ทธ ์๋ฒ๋ฅผ ๊ฐ๊ฐ ๋ฐ๋ก ์ค์นํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ(๋ผ์ฐํฐ: mongos)์์ ์ปจํผ๊ทธ ์๋ฒ์ ๋ชจ๋ ์ ์ํ์ฌ ๊ฐ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๋ ๋ฐฉ์.
- ๋ผ์ฐํฐ ์๋ฒ๊ฐ ์ฒญํฌ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ฉด, ๋ชจ๋ ์ปจํผ๊ทธ ์๋ฒ์ ์ ์ํ์ฌ ์ฒญํฌ ์ ๋ณด ๋ณ๊ฒฝ(update)๋ฌธ์ฅ์ ๊ฐ๊ฐ ์คํํจ. ์๋ฃ๋๋ฉด ์ปค๋ฐ์ ์ํํ๋ ๋ถ์ฐ ํธ๋์ญ์
์ ์คํํจ → ์ปจํผ๊ทธ ์๋ฒ๊ฐ ๋ณต์กํด์ง์๋ก ๊ตฌํ์ด ์ด๋ ต๊ณ ๋๊ธฐํ ๋ฌธ์ ์์ฃผ ์ ๋ฐ.
- ex) ์ ๊ธ ํ ์ด๋ธ(locks, lockpings)์ ๋๊ธฐํํ์ง ๋ชปํด ๋ผ์ฐํฐ ์๋ฒ๊ฐ ์ฒญํฌ ์คํ๋ฆฟ์ด๋ ๋ฐธ๋ฐ์ฑ์ ์คํํ์ง ๋ชปํจ.
- ๋ ํ๋ฆฌ์นด ์
(CSRS: Config Servers as Replica Sets)
- ์ค๋ ์๋ฒ์ฒ๋ผ ๋ ํ๋ฆฌ์นด ์ ์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ. ์ฆ ์ค๋ ์๋ฒ์ ๊ตฌ์ฑ ๋ฐฉ์์ด ๊ฐ์์ง.
- ์กฐ๊ฑด
- ์ปจํผ๊ทธ ์๋ฒ๋ ๋ฐ๋์ WiredTiger ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํด์ผ ํ๋ค.
- ๋ ํ๋ฆฌ์นด ์
์ ์๋นํฐ๋ฅผ ๊ฐ์ง ์ ์๋ค
- ์๋นํฐ : ๋ ํ๋ฆฌ์นด ์ ์ ๋ฉค๋ฒ๋ก ํ๋ผ์ด๋จธ๋ฆฌ ์ ์ถ ๊ด์ฌ. but, ์ค์ ์ฌ์ฉ์ ๋ฐ์ดํฐ ๊ด์ฌ X, ๋ฉค๋ฒ๋ก๋ถํฐ Oplog ๊ฐ์ ธ์ค์ง๋ ์์
- ๋ ํ๋ฆฌ์นด ์ ์ ์ง์ฐ๋ ๋ฉค๋ฒ๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ์ต์ 3๊ฐ ์ด์์ ๋ฉค๋ฒ๋ก ๊ตฌ์ฑํด์ผ ํ๋ค.(๊ถ์ฅ)
- ํด๋ผ์ด์ธํธ๋ ์ปจํผ๊ทธ ์๋ฒ์ ํ๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ๋ก ์ ์ํ์ฌ ์ฟผ๋ฆฌ๋ ๋ณ๊ฒฝ ๋ช ๋ น์ ์คํ
- Read Concern ์ด๋ Write Concern ์ majority ๋ก ์ค์ . → ํ๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ๊ฐ ์ผ์์ ์ธ ์ฅ์ ๋ก ๋ณต๊ตฌ๋์ ๋ ๋กค๋ฐฑ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํ๊ธฐ ์ํจ
- ๋ ํ๋ฆฌ์นด ์ ๋ฉค๋ฒ์ ๊ณผ๋ฐ์์ ์ ๊ทผํ ์ ์์ด์ผ๋ง ์ฟผ๋ฆฌ๋ฅผ ์ํํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํจ
- ์ปจํผ๊ทธ ์๋ฒ๊ฐ 2๋์ผ ๋๋ ๋ฉค๋ฒ ์ค ํ๋๋ง ์ฐ๊ฒฐ๋์ง ์์๋ ๋ฉํ ์ ๋ณด ์กฐํ์ ์ญ์ ๋ฅผ ํ ์ ์๊ฒ ๋๋ค.
2.2) ๋ผ์ฐํฐ
์ฌ์ฉ์์ ์ฟผ๋ฆฌ ์์ฒญ์ ์ค๋ ์๋ฒ๋ก ์ ๋ฌํ๊ณ , ์ค๋ ์๋ฒ๋ก๋ถํฐ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์์ ๋ค์ ์ฌ์ฉ์์๊ฒ ๋ฐํํ๋ ํ๋ก์ ์ญํ ์ ์ํํ๋ค.
์ฃผ์ ์ญํ
- ์ฌ์ฉ์ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ฌํด์ผ ํ ์ค๋ ์๋ฒ๋ฅผ ๊ฒฐ์ ํ๊ณ ํด๋น ์ค๋๋ก ์ฟผ๋ฆฌ ์ ์ก
- ์ค๋ ์๋ฒ๋ก๋ถํฐ ๋ฐํ๋ ๊ฒฐ๊ณผ๋ฅผ ์กฐํฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๊ฒฐ๊ณผ ๋ฐํ
- ์ค๋๊ฐ ์ฒญํฌ ๋ฐธ๋ฐ์ฑ ๋ฐ ์ฒญํฌ ์คํ๋ฆฟ ์ํ
์ปจํผ๊ทธ ์๋ฒ๋ก๋ถํฐ ํด๋ฌ์คํฐ์ ๋ฉํ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ํ๊ณ ์์ด์ ์ฌ์ฉ์ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ผ๋ฉด ๊ทธ ์ฟผ๋ฆฌ๋ฅผ ์ด๋ ์ค๋ ์๋ฒ๋ก ์ ๋ฌํด์ผ ํ ์ง ํ๋จํ ์ ์๋ค.
์ค๋ ์๋ฒ๊ฐ ๊ฐ์ง์ง ๋ง์์ผ ํ ๋ฐ์ดํฐ์ธ์ง ํ๋จํ๊ณ , ๊ฐ์ง์ง ๋ง์์ผ ํ ๋ฐ์ดํฐ๋ผ๋ฉด ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ ์์ ๋ ์ํํ๋ค.
์ด๋ฌํ ์๋ชป๋ ๋ฐ์ดํฐ๋ 1. ์ฒญํฌ ๋ง์ด๊ทธ๋ ์ด์ ๋์ค์ ์คํจํ๊ฑฐ๋, 2. ๊ฐ ์ค๋๋ก ์ ์ํ์ฌ ๊ฐ์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ์ ์ถฉ๋ถํ ๋ฐ์ํ ์ ์๋ค.
์ด๋ฐ ํํฐ๋ง์ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ์ค๋ณต๋ ๋ฐ์ดํฐ๋ ์ญ์ ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฐํ๋ ์ ์๋ค.
์ฟผ๋ฆฌ ๋ถ์ฐ
์ค๋ ํค ์กฐ๊ฑด์ ๊ฐ์ง ์ฌ์ฉ์ ์ฟผ๋ฆฌ์ ๋ํด์ ์ค๋ ์๋ฒ๋ค์ ์ ํํ ์ ์๋ค.
- ํ๊ฒ ์ฟผ๋ฆฌ
- ์๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์ฟผ๋ฆฌ๊ฐ ์์ฃผ ๋น๋ฒํ๊ฒ ์ ์ ๋๋ ์๋น์ค์์ ์ ๋ฆฌ
- ๋ธ๋ก๋์บ์คํธ ์ฟผ๋ฆฌ
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๊ฐ์ง๋ง ๋น๋ฒํ์ง ์์ ๋ฐฐ์น ํํ์ ํ๋ก๊ทธ๋จ์์๋ ๋ชจ๋ ์ค๋๋ฅผ ๊ณจ๊ณ ๋ฃจ ํ์ฉํ ์ ์๋๋ก ์ ๋ํ๋ ๊ฒ์ด ์ข๋ค.
- ์ค๋ ํค๋ฅผ ์ฟผ๋ฆฌ ์กฐ๊ฑด์ผ๋ก ๊ฐ์ง์ง ์์ ์์ ๋ฒ์๋ฅผ ํน์ ์ค๋๋ก ์ค์ผ ์ ์๋ค.
๋ฐฐํฌ
์ผ๋ฐ์ ์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ์ ํจ๊ป ๋ผ์ฐํฐ๋ฅผ ๋ฐฐํฌํจ - MongoDB ์์ ๊ถ์ฅํ๋ ๋ฐฉ์
์ฅ์
- ๊ณ ๊ฐ์ฉ์ฑ
- ๋คํธ์ํฌ ๋ ์ดํด์ ์ต์ํ
- ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ์ MongoDB ๋ผ์ฐํฐ๊ฐ ๊ฐ์ ๋ฌผ๋ฆฌ ์๋ฒ์ ์์นํจ
๋จ์
- ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ์ ๋์๊ฐ ๋์ด๋๋ฉด ๋์ด๋ ์๋ก MongoDB ์ค๋ ์๋ฒ ์ ์ฅ์์๋ ์ปค๋ฅ์ ์ ๊ฐ์๊ฐ ๋ง์ด ๋์ด๋๊ฒ ๋๋ค.
- ์คํ ์ค์ธ MongoDB ๋ผ์ฐํฐ๋ง ์๋ตํ ์ ์๋ ์ํ๊ฐ ๋๋ฉด ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ ํ๋์ง์ ๋ํ ๋ถ๋ถ
- ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ๋ ์ ์์ ์ผ๋ก ์๋ → ์ฌ์ฉ์ ์์ฒญ์ ์ ์ , ์ค์ ์ฒ๋ฆฌ๋ ํ๋๋ ์๋ฃํ์ง ๋ชปํจ.
- ์ฌ์ฉ์ ์์ฒญ์ด ๋์ด์ ์ ์ ๋์ง ์๋๋ก ํ๋ ๋ฑ์ ์ฒ๋ฆฌ๊ฐ ํ์ํจ.
๊ทธ ์ธ๋ก ์ ์ฉ ๋ผ์ฐํฐ ์๋ฒ ๋ฐฐํฌ, L4์ ํจ๊ป ๋ฐฐํฌ ๋ฐฉ์ ๋ฑ์ด ์๋ค.
3) ์ค๋ฉ ์๊ณ ๋ฆฌ์ฆ
MongoDB ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ๋ฐ๋ก ๋ฐ์ดํฐ์ ๋ถ์ฐ ์ฒ๋ฆฌ๋ค. ๋ฐ์ดํฐ ๋ถ์ฐ ์ฒ๋ฆฌ์ ๊ทผ๊ฐ์ ๋ฐ๋ก ์ฌ๋ฌ ์ค๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ์ํค๋ ๊ธฐ์ค์ด๋ฉฐ, ๋ฐ์ดํฐ์ ๋ถ์ฐ ๊ธฐ์ค์ ์ค๋ฉ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋ค.
- ๋ ์ธ์ง ์ค๋ฉ
- ํด์ ์ค๋ฉ (๊ถ์ฅ)
- ์ง์ญ ๊ธฐ๋ฐ ์ค๋ฉ
์ฒญํฌ
์ปฌ๋ ์ ์ ์ค๋ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ํํฐ์ ํ๊ณ ๊ฐ ์กฐ๊ฐ์ ์ฌ๋ฌ ์ค๋ ์๋ฒ์ ๋ถ์ฐํด์ ์ ์ฅํ๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ ์กฐ๊ฐ(ํํฐ์ )์ ์ฒญํฌ๋ผ๊ณ ํ๋ค.
์ฒญํฌ๋ ์ค๋ ํค์ ์๋ณธ ๊ฐ ๋๋ ํด์ ๊ฐ์ ์ผ์ ๋ฒ์๋ฅผ ๊ฐ์ง๋ค. ์ฒญํฌ์ ์ค์ฒด๋ ์ปจํผ๊ทธ ์๋ฒ์ ๋ฉํ ๋ฐ์ดํฐ๋ก๋ง ์กด์ฌํ๊ณ , ์ค์ ๊ฐ MongoDB์ ์ค๋ ์๋ฒ๋ ์ฒญํฌ๋ผ๋ ๊ฐ๋ ์ ๋ํด์ ์ ํ์๋ ์๋ค.
ํ์ง๋ง ์ฒญํฌ๊ฐ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ง ์กด์ฌํ๋ ใด๊ฐ๋ ์ด๊ธฐ ๋๋ฌธ์ ์ค๋๊ฐ ์ฒญํฌ ๋ฐธ๋ฐ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ฒญํฌ ๊ฐ์ ๋ถ๊ท ํ→ ๋ค๋ฅธ ์ค๋๋ก ์ฎ๊ฒจ์ง → MongoDB ์ค๋ ์๋ฒ์์๋ INSERT์ DELETE๊ฐ ์คํ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก 64MB ์ ๋๊น์ง ์ปค์ง ์ ์์ผ๋ฉฐ ๊ทธ ์ด์์ผ๋ก ์ปค์ง๋ฉด ๋ฐธ๋ฐ์์ ์ํด์ ์๋์ผ๋ก ์คํ๋ฆฟ๋๋ค.
3.1) ๋ ์ธ์ง ์ค๋ฉ(Range Sharding)
์ค๋์ ํค ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฒ์๋ฅผ ๋๋๊ณ , ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ ์ฒญํฌ์ ํฌํจ๋ ์ง ๊ฒฐ์ ํ๋ ์ค๋ฉ ์๊ณ ๋ฆฌ์ฆ
์ค๋ ํค ๊ฐ์ด ๊ทธ ์์ฒด๋ก ์ ๋ ฌ๋ผ์ ๊ฐ ์ฒญํฌ์ ๋ฒ์๊ฐ ๊ฒฐ์ ๋๋ค.(์ด๋ ์ค๋ ์๋ฒ๋ก ์ ์ฅ๋ ์ง๋ ๋ ์ธ์ง ์ค๋ฉ์ ๋ชฉ์ ์ด๋ ์ญํ ์ด ์๋. ๋จ์ ์ฒญํฌ์ ๋ฒ์ฃผ ๊ฐ์ ๊ฒฐ์ )
์ฅ์
- ๋ฒ์ ๊ฒ์ ์ฟผ๋ฆฌ๋ฅผ ํ๊ฒ ์ฟผ๋ฆฌ(Target Query)๋ก ์คํ ๊ฐ๋ฅ
๋จ์
- ์ค๋์ ๋ฐ์ดํฐ๊ฐ ๊ท ํ ์๊ฒ ๋ถ์ฐ๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- ํ ๋ฒ์์ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด, ๋ฐ์ดํฐ ๋ถ๊ท ํ → ์ ๋ณด ์ฒญํฌ ๋ฌธ์ , ์ค๋ ์๋ฒ์ ์์์ ๊ท ํ ์๊ฒ ์ฌ์ฉํ์ง ๋ชปํจ → ๋ถ๊ท ํ์ด ์ฌํด์ง๋ฉด ํด๋ฌ์คํฐ์ ์ฑ๋ฅ์ด ๋์์ง์ง ์์.
- ์๋ชป ์ ํ๋ ์ค๋ ํค๋ก ์ธํด ๋ฐ์ดํฐ์ ๋ถ๊ท ํ๊ณผ ์ค๋ ๊ฐ ์ฒญํฌ ์ด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ , ์ ๋๋ก ์ฌ์ฉ์ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์.
→ ๊ฐ๋ฅํ ํด์ ์ค๋ฉ์ ์ฌ์ฉํ๊ณ ํด์ ์ค๋ฉ์ ์ฌ์ฉํ ์ ์์ ๋ ๋ ์ธ์ง ์ฌ์ฉํ๊ธฐ๋ฅผ ๊ถ์ฅ
3.2) ํด์ ์ค๋ฉ(Hashed Sharding)
์ค๋ ํค ๊ฐ์ ํด์๊ฐ์ ์ด์ฉํด์ ์ฒญํฌ๋ฅผ ํ ๋นํ๋ ์ค๋ฉ ๋ฐฉ์ MD5 ํด์ ํจ์๋ฅผ ์ด์ฉํ๋ค. ์์ฆ์๋ ์ถฉ๋์ด์๋ก ๋ฆฌ๋ฒ์ค ํด์๋ฅผ ๋ง์ด ์ฌ์ฉํ์ง๋ง, ์ค๋ ํค๋ ์ํธํ๊ฐ ๋ชฉ์ ์ด ์๋๋ผ ๋ฐ์ดํฐ์ ๋ถ์ฐ์ด ์ฃผ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์ MD5 ํด์๋ฅผ ์ฌ์ฉํ๋ค.
ํด์ ์ค๋ฉ๋ ๊ฒฐ๊ตญ ๋ ์ธ์ง ์ค๋ฉ์ ์ผ์ข ์ด๋ค. 64bit ์ ์๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ์ผ ใ ฃ๋ชจ๋ ๋ฒ์๋ฅผ ์ปค๋ฒํ๊ณ ์์ผ๋ฉฐ, ๊ฐ ์ฒญํฌ๋ 64bit ์ ์์ ์ฐ์๋ ๊ฐ์ ๋ด๋นํ๊ณ ์์ผ๋ฏ๋ก ๋ ์ธ์ง ์ค๋ฉ๊ณผ ๋์ผํ๋ค๊ณ ๋ณผ ์ ์๋ค. ํ์ง๋ง ์ค๋ ํค์ ํด์ ๊ฒฐ๊ด๊ฐ์ผ๋ก ๋ ์ธ์ง ์ค๋ฉ์ ์ ์ฉํ๋ ๊ฒ์ด๋ค.
๋๋ถ๋ถ์ ์ํธํ ํด์ ํจ์๋ ์ง์ ๋ ๋ฒ์ ๋ด์์ ๋งค์ฐ ๊ท ๋ฑํ๊ฒ ๋ถํฌ๋ ๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ค๋ ํค์ ๊ฐ์ด ๋น์ทํ ๊ฐ์ ๊ฐ์ง๋ค ํ๋๋ผ๋ ํด์ ํจ์์ ๊ฒฐ๊ด๊ฐ์ ๋งค์ฐ ๋ค๋ฅธ ๊ฐ์ ๋ฐํํ๋ค. ๊ทธ๋์ ํด์ ํจ์๋ฅผ ๊ฑฐ์น ์ค๋ ํค ๊ฐ์ ์ ์ฒด ๋ฒ์์ ๋ํด์ ๊ณจ๊ณ ๋ฃจ ๋ถ์ฐ๋๋ ํจ๊ณผ๋ฅผ ๋ด๊ฒ ๋๋ค.
→ ๋ ์ธ์ง ์ค๋ฉ์ด ๊ฐ์ง๋ ๋ํ์ ์ธ ๋จ์ ์ ์ ๊ฑฐ 1. ์ค๋ ํค ๊ฐ์ด ํน์ ๋ฒ์์ ์ง์ค๋์ด ์์ ๋ ๋ฐ์ํ๋ ๋ฐ์ดํฐ ๋ถ๊ท ํ 2. ์ฐ์๋ ์ค๋ ํค ์ก์ธ์ค๋ก ์ธํ ํน์ ์ค๋ ์๋ฒ์ ๋ถํ ํธ์ค
์ ์ฝ ์ฌํญ
- ๋ฒ์ ๊ฒ์ ์ฟผ๋ฆฌ๋ ๋ธ๋ก๋์บ์คํธ ์ฟผ๋ฆฌ๋ก ์คํ
- ์ค๋ ํค์ ์๋ณธ์ด ์๋ ํด์ ํจ์์ ๊ฒฐ๊ด๊ฐ์ผ๋ก ์ฒญํฌ๋ฅผ ๋ถ์ฐํ๊ธฐ ๋๋ฌธ์ ์๋ณธ๊ฐ์ ๋ฒ์ ๊ฒ์์ ํ ๋ ํน์ ์ฒญํฌ๋ฅผ ํ์ ํ ์ ์์ด ํ๊ฒ ์ฟผ๋ฆฌ๋ก ์คํํ์ง ๋ชปํ๋ค.
- ์ค๋ ํค ํ๋์ ๋ํด์ ํด์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํด์ผ ํจ
- ์ค๋ ํค ํ๋์ ๋ํด ํด์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ด์ผ๋ง ํด์ ์ค๋ฉ์ ์ด์ฉํ ์ ์๋ค. → ํด์ ์ธ๋ฑ์ค์ ์ ์ฝ ์ฌํญ์ด ๋์ผํ๊ฒ ์ ์ฉ๋๋ค.
- ํด์ ์ธ๋ฑ์ค
- ๋จ์ผ ํ๋์ ๋ํด์๋ง ํด์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ์ ์์
- ๋ฉํฐ ํค ํ๋์ ๋ํด์๋ ํด์ ์ธ๋ฑ์ค ์์ฑ ๋ถ๊ฐ
- ๋ถ๋ ์์์ ํ๋๋ ์์์ ์ดํ๋ฅผ ๋ฒ๋ฆฌ๊ณ ํด์ ํจ์ ์ํ
- 2^53๋ณด๋ค ํฐ ๋ถ๋์์์ ์ ๋ํด์๋ ํด์ ์ธ๋ฑ์ค๋ฅผ ์ง์ํ์ง ์์
3.3) ์ง์ญ ๊ธฐ๋ฐ ์ค๋ฉ(Zone Sharding)
๋ ์ธ์ง ์ค๋ฉ์ด๋ ํด์ ์ค๋ฉ๊ณผ ๋ฐ๋์ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ค. ๋ ์ธ์ง ์ค๋ฉ์ด๋ ํด์ ์ค๋ฉ์ ์ค๋ฉ ์๊ณ ๋ฆฌ์ฆ์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ปค๋ฒํ ์ ์์ด์ผ ํ์ง๋ง, ์ง์ญ ๊ธฐ๋ฐ ์ค๋ฉ์ ์ ํ์ ์ผ๋ก ์ ์ฉํ ์ ์๋ค. ๋ง์น ์ต์ ์ฒ๋ผ.
์ฆ, ๊ด์ฌ ๋์์ ๋ฐ์ดํฐ์๋ง ์ค๋ฉ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ์ ์๋ค.
์ฌ์ฉ ๋ชฉ์
- ์ง์ญ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ๊ตฌ๋ถ
- ํน์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ ์ค๋ ์๋ฒ๋ก ๊ตฌ๋ถํด์ ๊ด๋ฆฌ
- ์ค๋ ์๋ฒ์ ํด๋์ค(์ค๋ ์๋ฒ์ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ด๋ ์ ์ฅ๊ณต๊ฐ)๋ณ๋ก ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถ
์ง์ญ ๊ธฐ๋ฐ ์ค๋ฉ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ ์ธ์ง ์ค๋ฉ์ด๋ ํด์ ์ค๋ฉ์ ํ ์ํ์์ ์ถ๊ฐ๋ก ๋ ๊ฐ์ง ์ค๋น๊ฐ ํ์ํ๋ค.
- ์ค๋๋ณ๋ก ํ๊ทธ๋ฅผ ํ ๋นํ๊ณ
- ์ค๋ ํค ๋ฒ์๋ณ๋ก ํ๊ทธ๋ฅผ ํ ๋นํ๋ค.
mongos> sh.addShardTag("shard-01", "KR")
mongos> sh.addShardTag("shard-02", "KR")
mongos> sh.addShardTag("shard-03", "US")
|
4) ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋
์ค๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๋ฅผ ๊ฐ์ง๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ์ค๋๋ ์ค๋ ํด๋ฌ์คํฐ์์ ์ค๋ฉ ๋์ง ์์ ์ปฌ๋ ์ ๋ค์ ์ ์ฅํ๋ ์ค๋๋ฅผ ๋ปํจ. ๋ ํ๋ฆฌ์นด ์ ์ ํ๋ผ์ด๋จธ๋ฆฌ์๋ ์ ํ ๋ฌด๊ดํ๋ค.
์ค๋ ํด๋ฌ์คํฐ์์ ์ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ฑ๋๋ฉด ๊ฐ ์ค๋ ์ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ์ ๊ฒ ๊ฐ์ง ์ค๋๋ฅผ ์ ํํด์ ์์ฑ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๋ก ์ค์ ํ๋ค.
์ค๋ฉ๋์ง ์์ ์ปฌ๋ ์ ์ ์ด๋ ์ค๋์ ์ ์ฅํ ์ง ๊ฒฐ์ ํด์ผ ํ๋๋ฐ, ์ด๋ ๊ธฐ์ค์ด ๋๋ ์ ๋ณด๊ฐ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๋ ๋ค๋ฅธ ์ค๋๋ก ์ฎ๊ฒจ์ง ์ ์๋๋ฐ, ์ด๋ ๊ฒ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๋ฅผ ์ฎ๊ธฐ๋ ์์ ์ MongoDB ์ค๋ ํด๋ฌ์คํฐ์์ ํน์ ์ค๋๋ฅผ ์ ๊ฑฐํ๊ณ ์ ํ ๋ ํ์ํ๋ค.
movePrimary ๋ผ๋ ๋ช ๋ น์ด๋ฅผ MongoDB ๋ผ์ฐํฐ์์ ์คํํ๋ฉด ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ์ด ๋ช ๋ น์ผ๋ก ์ฎ๊ฒจ์ง๋ ์ปฌ๋ ์ ์ ๋ํด์๋ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ์ง ์๋๋ค.
๋ํ ์ค๋ฉ๋์ง ์์ ์ปฌ๋ ์ ์ด ์๋ก์ด ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๋ก ์ฎ๊ฒจ์ง๊ณ ๋ ์ดํ์ ํด๋น ์ปฌ๋ ์ ์ ์ธ๋ฑ์ค ์์ฑ์ด ์คํ๋ผ์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด ์ธ๋ฑ์ค ์์ฑ์ ํฌ๊ทธ๋ผ์ด๋(Foreground) ๋ชจ๋๋ก ์์ฑ๋๋ฏ๋ก ์์ฑ ์๊ฐ ๋์ ๊ทธ ์ปฌ๋ ์ ์ด ๊ฐ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด์ ์ฝ๊ธฐ์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ์ํํ ์ ์๋ค. ๋ง์ฝ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋์ ๋ณ๊ฒฝ์ผ๋ก ์ฎ๊ฒจ์ ธ์ผ ํ๋ ์ปฌ๋ ์ ์ด ํฌ๊ณ ๋ง๋ค๋ฉด ํด๋น ์ปฌ๋ ์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ๊ธฐ๋ ๋ณ๊ฒฝ ์ฟผ๋ฆฌ๋ฅผ ์ผ์์ ์ผ๋ก ๋ฉ์ถ๊ฑฐ๋ ์๋น์ค ์ ์ฒด๋ฅผ ์ ๊ฒ ๋ชจ๋๋ก ์ ํํด์ผ ํ ์๋ ์๋ค.
๋ํ ๋ชจ๋ MongoDB ๋ผ์ฐํฐ์๊ฒ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๊ฐ ๋ณ๊ฒฝ๋๋ค๋ ๊ฒ์ ์๋ ค์ค์ผ ํ๋ค. ์ด๋ ๊ฒ ๊ฐฑ์ ํ๋ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์๋ค.
- ๋ชจ๋ MongoDB ๋ผ์ฐํฐ ์ฌ์์
- ๋ชจ๋ MongoDB ๋ผ์ฐํฐ์์ flushRouterConfig ๋ช
๋ น ์คํ
- ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋ ์ ๋ณด๋ง ๊ฐฑ์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ค๋ฉ๋ ๋ชจ๋ ์ปฌ๋ ์ ์ ๋ฉํ ์ ๋ณด(์ปฌ๋ ์ ์ ์ฒญํฌ ๋ชฉ๋ก๊ณผ ๊ฐ ์ฒญํฌ์ ์ต์๊ฐ, ์ต๋๊ฐ ์ ๋ณด)๋ฅผ ๋ชจ๋ ๊ฐฑ์ ํ๋ค. ๊ทธ๋์ ๋์์ ์๋ฐฑ ๋์ MongoDB ๋ผ์ฐํฐ์์ ์คํํ ๋์๋ ์ปจํผ๊ทธ ์๋ฒ์ ๋ถํ๊ฐ ๋์์ง ์ ์๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๋ฅผ ๋ณ๊ฒฝํ๋ ์์ ์ ์๋น์ค์ ๋ง์ ์ํฅ์ ๋ฏธ์น๋ ์์ ์ด๋ค. ์ค๋ฉ๋์ง ์์ ์ปฌ๋ ์ ์ด ๋น๋ฒํ๊ฒ ์ฌ์ฉ๋๋ค๋ฉด ์ ๊ฒ ๋ชจ๋๋ฅผ ๊ณ ๋ คํ๋๋ก ํ์. ๊ทธ๋ฆฌ๊ณ ์ค๋ ํด๋ฌ์คํฐ ํ๊ฒฝ์์ ์ค๋ฉ๋์ง ์์ ์ปฌ๋ ์ ์ ๋ณดํธ๋ฐ์ง ๋ชปํ๋ ์กด์ฌ์ ๊ฐ๋ค. ๊ทธ๋์ ๊ฐ๋ฅํ ์ค๋ฉ์ ์ ์ฉํ๋๋ก ํ์.
5) ์ฒญํฌ ๋ฐธ๋ฐ์ฑ
MongoDB์ ๊ฐ ์ค๋ ์๋ฒ๋ ๊ฐ๋ฅํ๋ค๋ฉด ์๋ก ๊ท ๋ฑํ ์์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค. ์ค๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ค๋๊ฐ ๋๋ฑํ ๋ถํ์ ์ฌ์ฉ์ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ๊ทธ ์ค๋ ํด๋ฌ์คํฐ๊ฐ ์ต๊ณ ์ ์ฑ๋ฅ์ ๋ฐํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ๊ฐ ์ค๋๊ฐ ๊ฐ์ง ๋ฐ์ดํฐ์ ๋ถ๊ท ํ์ ์ธ์ ๋ ์ง ๋ฐ์ํ ์ ์๋ค.
MongoDB๋ ์ด๋ฌํ ์ค๋ ๊ฐ ๋ฐ์ดํฐ ๋ถ๊ท ํ ํ์์ ํผํ๊ธฐ ์ํด์ ์ต๋ํ ๊ฐ ์ค๋๊ฐ ๊ฐ์ง ์ฒญํฌ์ ๊ฐ์๋ฅผ ๋์ผํ๊ฒ ๋ง๋ค๋ ค๊ณ ๋ ธ๋ ฅํ๋ค. ๋ํ ์ฒญํฌ๊ฐ ๋๋ฌด ์ปค์ง๋ฉด ์ค๋ ์๋ฒ๋ ์ฒญํฌ ํ๋์ ์ด๋์ ๋๋ฌด ๋ง์ ์์คํ ์์์ ์๋ชจํ๊ฒ ๋๋ค. ์ด๋ฌํ ํ์์ ๋ง๊ธฐ ์ํด ๊ฐ ์ฒญํฌ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ฒญํฌ๋ฅผ ์คํ๋ฆฟํด์ผ ํ ์ง ์ฒดํฌํ๋ ์์ ์ ์ํํ๋ค.
5.1) ์ค๋ ํด๋ฌ์คํฐ ๋ฐธ๋ฐ์
๋ฐธ๋ฐ์๋ ๊ฐ ์ค๋๊ฐ ์ฒญํฌ์ ๊ฐ์๋ฅผ ๋ชจ๋ํฐ๋งํ๋ค๊ฐ ๊ฐ ์ค๋์ ์ฒญํฌ ๊ฐ์๊ฐ ์ผ์ ์์น ์ด์ ์ฐจ์ด๋๋ฉด(๋ถ๊ท ๋ฑํด์ง๋ฉด) ์ ์ ํ ์ฒญํฌ๋ฅผ ์ฎ๊ฒจ์ ์ค๋ ๊ฐ ๋ถํ์ ๊ท ํ์ ๋ง์ถ๋ค.
๋ถ๊ท ํ์ ํ๋จํ๋ ๊ธฐ์ค์ ์ฒญํฌ๋ฅผ ๊ฐ์ฅ ๋ง์ด ๊ฐ์ง ์ค๋์ ์ฒญํฌ๋ฅผ ๊ฐ์ฅ ์ ๊ฒ ๊ฐ์ง ์ค๋์ ์ฒญํฌ ๊ฐ์๊ฐ ์๊ณ์น ์ด์ ์ฐจ์ด๊ฐ ๋๋ฉด ์ฒญํฌ ์ด๋์ ์คํํ๋ค.
20๊ฐ ๋ฏธ๋ง์ ์ฒญํฌ๋ฅผ ๊ฐ์ง ์ปฌ๋ ์ | 2 |
20๊ฐ~79๊ฐ ์ฌ์ด์ ์ฒญํฌ๋ฅผ ๊ฐ์ง ์ปฌ๋ ์ | 4 |
80๊ฐ ์ด์์ ์ฒญํฌ๋ฅผ ๊ฐ์ง ์ปฌ๋ ์ | 8 |
์๊ณ์น๋ฅผ ์ ํด๋ ์ด์ ๋ ์ฒญํฌ ์ด๋ ๋น์ฉ์ด ๋งค์ฐ ํฌ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ์ดํฐ๊ฐ ์ ์ฅ, ์ญ์ ๋๋ฉด์ ์ฒญํฌ๋ ๊ณ์ ์ปค์ง ์ ์๊ณ , ์ด๋ก ์ธํด ์ฒญํฌ๊ฐ ์คํ๋ฆฟ๋์ด ์ ์ฒด์ ์ผ๋ก ์ค๋์ ์ฒญํฌ ๊ฐ์๊ฐ ๋์ด๋ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ๋ชจ๋ ์ค๋์ ์ฒญํฌ๊ฐ ๋์ผ ์์ ์ ์คํ๋ฆฟ๋๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ์ผ์์ ์ผ๋ก 2~3๊ฐ ์ด์์ ์ฐจ์ด๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ด๋ ๊ฒ ์ผ์์ ์ผ๋ก ๋ฐ์ํ ๋๋ง๋ค ์ฒญํฌ๋ฅผ ์ด๋ํ๋ ๊ฒ์ ์ค๋ ์๋ฒ์ ๋๋ฌด ๋ง์ ๋ถ๋ด์ ์ฃผ๊ธฐ ๋๋ฌธ์ ์ปฌ๋ ์ ์ ์ฒญํฌ ๊ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์๊ณ์น๋ฅผ ์ค์ ํด ๋์๋ค.
๋ฐธ๋ฐ์๊ฐ ์คํ๋๋ฉด ๊ฐ ์ค๋๊ฐ ๊ฐ์ง ์ฒญํฌ์ ๊ฐ์ ์ฐจ์ด๊ฐ ๊ธฐ์ค์น ์ดํ๋ก ๋จ์ด์ง๋๊น์ง ์ฒญํฌ๋ฅผ ์ด๋ํด์ ๋ถ์ฐ์ํจ๋ค.
๋ฐธ๋ฐ์๊ฐ ์ฒญํฌ์ ๋ถ๊ท ํ์ ๊ฐ์งํ์ฌ ์ฒญํฌ ์ด๋์ ์์ํ๊ณ ๋๋ ๋๊น์ง๋ฅผ ๋ฐธ๋ฐ์ฑ ๋ผ์ด๋(Balancing Round)๋ผ๊ณ ํ๋ค.
MongoDB 3.2๊น์ง๋ ๋ฐธ๋ฐ์๊ฐ ๋ผ์ฐํฐ์์ ์คํ๋๋๋ฐ, ํด๋ฌ์คํฐ์ ๋ผ์ฐํฐ๊ฐ ๋ง์ด ์กด์ฌํ ์ ์๋ค. ์๋ง์ ๋ผ์ฐํฐ ์ธ์คํด์ค๋ค์ด ์๋ก ์ฒญํฌ ์ด๋์ ๋์์ ์ํํ์ง ์๋๋ก ๋ผ์ฐํฐ๋ ๋ฐธ๋ฐ์ฑ ๋ผ์ด๋๋ฅผ ์์ํ๊ธฐ ์ ์ ๋จผ์ config ๋ฐ์ดํฐ๋ฒ ์ด์ค์ locks ์ปฌ๋ ์ ์์ ์ ๊ธ์ ํ๋ํด์ผ ํ๋ค.
๋จ์
- ์ด๋ค ๋ผ์ฐํฐ๊ฐ ์ฒญํฌ ๋ฐธ๋ฐ์ฑ์ ํ๋์ง ์์ธกํ๊ธฐ ์ด๋ ค์
- ๋ผ์ฐํฐ๋ Statelessํ๊ณ ์ค๊ณ๋์๊ณ ๊ด๋ฆฌ์ ์ค์ํ์ง ์์ ํ๋ก์ธ์ค์ ์ํ๋ค. ์ด๋ฌํ ๋ผ์ฐํฐ๊ฐ ์ฒญํฌ ๋ฐธ๋ฐ์ฑ์ ๋ด๋นํ๊ฒ ๋๋ฉด ๊ด๋ฆฌ์์ ์ด๋ ค์์ ์ ๋ฐ
- ๋ผ์ฐํฐ๋ ์ปจํผ๊ทธ ์๋ฒ์ ์์ ํ ๋ถ๋ฆฌ๋ ์๋ฒ์์ ์๋ → ์๋ฒ๊ฐ ํต์ ์ ์ ๋ขฐ์ฑ์ด ๋ฎ์์ง ๊ฐ๋ฅ์ฑ์ด ์์
๋ฐ๋ผ์, MongoDB 3.4 ๋ฒ์ ๋ถํฐ๋ ๋ฐธ๋ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ปจํผ๊ทธ ์๋ฒ์์ ์ํํ๋๋ก ์ํคํ ์ฒ๋ฅผ ๊ฐ์ ํ๋ค.
๊ฐ์
- ๋ฐธ๋ฐ์ค ์ ๊ธ ํ๋์ ์ํด์ ์๋ก ๊ฒฝํฉํ ํ์๊ฐ ์์ด์ง
- ์๊ธฐ ์์ ์ด ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ก์ปฌ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ฏ๋ก ๋ฉํ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ๋จ๊ณ์์ ์คํจํ ๊ฐ๋ฅ์ฑ์ด ํ๊ธฐ์ ์ผ๋ก ์ค์ด๋ฆ
- ์ฒญํฌ ๋ฐธ๋ฐ์ค ์์ ์์ ๋ผ์ฐํฐ๊ฐ ๊ด์ฌ X. ์ค์ง ์ฌ์ฉ์ ์ฟผ๋ฆฌ๋ง ์ค๋๋ก ์ ๋ฌํ๋ ์ญํ ๋ง ์ฒ๋ฆฌ. ์ธ์ ๋ ์ง ์ฌ์์ํด๋ ๋๋ ์ปดํฌ๋ํธ๊ฐ ๋จ
5.2) ์ฒญํฌ ์คํ๋ฆฟ(Chunk split)
์ฒญํฌ๋ ์ค๋ ๊ฐ์ ๋ฐ์ดํฐ ๊ท ํ์ ์ํด์ ๊ด๋ฆฌ๋๋ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ(partition)์ด๋ค. ๊ทธ๋์ ์ฒญํฌ๋ ์ค๋ ๊ฐ์ ์ด๋ํ ๋ ์ค๋ ์๋ฒ์ ์ต์ํ์ ์ํฅ์ ๋ฏธ์น๋๋ก ์ ์ ํ ํฌ๊ธฐ๋ฅผ ์ ์งํด์ผ ํ๋ค.
์ฒญํฌ๋ ์๋ ๋๋ ์๋์ผ๋ก ์คํ๋ฆฟ๋ ์ ์๋๋ฐ, ์๋ ์คํ๋ฆฟ์ ์ฒญํฌ์ ๋ํ๋จผํธ๊ฐ INSERT๋๊ฑฐ๋ UPDATE๋ ๋์๋ง ํด๋น ์ฒญํฌ๋ฅผ ์คํ๋ฆฟํ ์ง ๊ฒฐ์ ํ๋ค.
์ฒญํฌ ์คํ๋ฆฟ ๊ธฐ์ค
- ์ปจํผ๊ทธ ์๋ฒ์ settings ์ปฌ๋ ์ ์์ balancer ์ ์ค์ ๋ ์ฒญํฌ ์ฌ์ด์ฆ๋ณด๋ค ํ์ฌ ์ฒญํฌ ํฌ๊ธฐ๊ฐ ํด ๋
- ์ฒญํฌ ์ด๋์ ์ต๋ ๋ํ๋จผํธ ๊ฑด์๋ณด๋ค ๋ง์ ๋ํ๋จผํธ๋ฅผ ํ์ฌ ์ฒญํฌ๊ฐ ๊ฐ์ง๊ณ ์์ ๋
์ฃผ์
์ฒญํฌ ์ฌ์ด์ฆ๊ฐ ์ฆ๊ฐํ๋ ์ด์ ๋ ํด๋น ์ฒญํฌ์ ๋ํ๋จผํธ๊ฐ INSERT๋๊ฑฐ๋ UPDATE๋๋ฉด์ ์ฉ๋์ด ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
MongoDB ๋งค๋ด์ผ์์ ๋ช ์ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ฒญํฌ์ ํฌ๊ธฐ๋ ๋ํ๋จผํธ์ ๊ฑด์๋ฅผ ๊ธฐ์ค์ผ๋ก INSERT ๋๊ฑฐ๋ UPDATE๋ ๋๋ง๋ค ์๋์ผ๋ก ์คํ๋ฆฟํ ๊ฒ์ธ์ง ํ๋จํ๋ค๋ฉด ํญ์ ๋ชจ๋ ์ฒญํฌ๋ ์ฒญํฌ ์ด๋์ด ๊ฐ๋ฅํ ์ ์ ํฌ๊ธฐ๋ฅผ ์ ์งํด์ผ ํ๋ค. ์ด๋ ๋์ผํ ์ค๋ ํค๋ฅผ ๊ฐ์ง๋ ๋ํ๋จผํธ๊ฐ ๋ง์ง ์์ ์ปฌ๋ ์ ์ ๋ํด์๋ ์ด๋ก ์ ์ผ๋ก ์ฒญํฌ ์ด๋์ด ์ฒญํฌ์ ํฌ๊ธฐ๋ ๋ํ๋จผํธ ๊ฑด์๋ก ์ธํด์ ์คํจํด์๋ ์๋๋ค๋ ์๋ฏธ๋ค.
ํ์ง๋ง ์ค์ ๋ก ์ด์ํด ๋ณธ ๊ฒฝํ์ ๋น์ถ์ด๋ณด๋ฉด, ์ฒญํฌ์ ํฌ๊ธฐ๋ ๋ํ๋จผํธ์ ๊ฐ์๊ฐ ๋ง์์ ์ฒญํฌ ์ด๋์ ์คํจํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์์ด ๊ฒฝํํ๋ค. ๋งค๋ด์ผ๋๋ก ์๋ํ์ง ์๋ ๋ถ๋ถ์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ์ด์จ๊ฑฐ๋ ์ฒญํฌ์ ์๋ ์คํ๋ฆฟ๋ง ๋ฏฟ๊ณ ์์ด์๋ ์๋๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋นจ๋ฆฌ ์ฆ๊ฐํ๋ ์ปฌ๋ ์ ์ ๋ํด์๋ ๊ฐ ์ฒญํฌ์ ํฌ๊ธฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ ํ์๊ฐ ์๋ค.
ํ๋์ ์ฒญํฌ๋ 64MB ์ ๋์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ผ๋ก ์ ์งํ๋ ค๊ณ ํ๋ค. ๊ทธ ์ด์์ผ๋ก ์ปค์ง๋ฉด, ์ฒญํฌ๋ฅผ ์ชผ๊ฐ์ 2๊ฐ ์ด์์ ์๋ก์ด ์ฒญํฌ๋ก ๋ถ๋ฆฌํ๋ค. ์ด๋ ๊ฒ ์ชผ๊ฐ๋ ๊ณผ์ ์ ์คํ๋ฆฟ์ด๋ผ๊ณ ํ๊ณ , MongoDB์์ ์คํ๋ฆฟ์ ๋ ๋จ๊ณ๋ก ๋๋๋ค.
- splitVector
- ํ๋์ ์ฒญํฌ๋ฅผ ์ต๋ ์ฒญํฌ ํฌ๊ธฐ(64MB)์ ์ ๋ฐ ํฌ๊ธฐ(32MB)๋ก ๋๋๊ธฐ ์ํด์ ์์น๋ฅผ ์ฐพ๋ ๊ณผ์ ์ด๋ค.
- ๋ฆฌํด ๊ฐ์ด ์ฒญํฌ๋ฅผ ์คํ๋ฆฟํ ์ ์๋ ์ ํจํ ํฌ์ธํฐ๋ฅผ ํฌํจํ๋ค๋ฉด ๋ค์ ๋ช
๋ น์ด ์คํ
- ์คํ๋ฆฟ ํฌ์ธํธ๋ฅผ ์ฐพ์ง ๋ชปํ๋ค๋ฉด ๋ผ์ฐํฐ๋ ์ปจํผ๊ทธ ์๋ฒ์ ๋ก๊ทธ ํ์ผ๋ก ๊ธฐ๋ก
- ์ค๋ ํค ์ธ๋ฑ์ค์ ์ผ๋ถ(๋ถํ ๋์์ด ๋๋ ์ฒญํฌ์ ์์ ํค ๊ฐ๊ณผ ๋๋๋ ์ง์ ์ ํค ๊ฐ๊น์ง)๋ง ์ค์บ → ์๋์ ์ผ๋ก ๊ฐ๋ณ๊ฒ ์ฒ๋ฆฌ
- ํ๋ ๋์์ผ๋ก ๊ณ ๋ คํ ํ์๋ ์๋ค.
- splitChunk
- ์ฒญํฌ์ ๋ฉํ ์ ๋ณด๋ฅผ ์๋ก์ด ์ฒญํฌ ์ ๋ณด๋ก ๋์ฒด
- ๋จ๊ณ
- ์ปจํผ๊ทธ ์๋ฒ์ ๋ฉํ๋ฐ์ดํฐ ์ ๊ธ ํ๋
- ๋ฉํ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ์ํด์ ๋ฐฐ์น ์ ๋ฐ์ดํธ ๋ช ๋ น ์คํ
- ์ปจํผ๊ทธ ์๋ฒ์ ๋ณ๊ฒฝ ์ด๋ ฅ ์ ์ฅ(changelog ์ปฌ๋ ์ )
6) ์ค๋ฉ์ผ๋ก ์ธํ ์ ์ฝ
6.1) ํธ๋์ญ์
ํธ๋์ญ์ ์์ฑ์ผ๋ก ACID(Atomicity, Consistency, Isolation, Durability)๋ฅผ ์ฃผ๋ก ์ธ๊ธํ๋ค.
MongoDB ์์ ๋ถ์ฐ ํธ๋์ญ์ ์ ์ง์ํ์ง ์์ ์์์ฑ์ ๋ณด์ฅํ ์ ์์์ง๋ง,
4.0 ๋ฒ์ ์ด ๋ฆด๋ฆฌ์ฆ๋๋ฉด์ Replica Set์์ ์๋ํ๋ ๋ค์ค ๋ํ๋จผํธ ํธ๋์ญ์ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์๋ค. ๋ํ, 4.2 ๋ฒ์ ์์ ๋ค์ค ๋ํ๋จผํธ ํธ๋์ญ์ ์ ๋ํ ์ง์์ด Sharded Cluster๋ก ํ์ฅ๋์ด ACID ํธ๋์ญ์ ์ ์ง์ํจ.
6.2) ์ค๋ฉ๊ณผ ์ ๋ํฌ ์ธ๋ฑ์ค
์ค๋ฉ๋ ๋ฐ์ดํฐ ๊ฐ์ ์ ๋ํฌ ์ธ๋ฑ์ค ์์ฑ์ ์ ์ฝ์ ๊ฐ์ง๊ฒ ๋๋ค.
์ค๋ฉ๋ ์ปฌ๋ ์ ์์ ์ ๋ํฌ ์ธ๋ฑ์ค๋ ์ค๋ ํค๋ฅผ ํฌํจํ๋ ์ธ๋ฑ์ค์ ๋ํด์๋ง ์ ์ฉํ ์ ์๋ค.
MongoDB์ ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ ์ค๋ฉ๊ณผ ๋ฌด๊ดํ๊ฒ ํญ์ ์ ๋ํฌํด์ผํ๋ฉฐ, ์ธ์ปจ๋๋ฆฌ ํค ์ค์์๋ ์ ๋ํฌ ์ต์ ์ด ์ค์ ๋๋ ๊ฒฝ์ฐ์๋ ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ๋์ผํ๊ฒ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ก ์ฒ๋ฆฌ๋ผ์ผ ํ๋ค.
6.3) ์กฐ์ธ๊ณผ ๊ทธ๋ํ ์ฟผ๋ฆฌ
์ฌ๋ฌ ์ปฌ๋ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ธํด์ ์ฟผ๋ฆฌํ ์ ์๋๋ก $lookup ์คํผ๋ ์ด์ ์ ๊ณต, ๊ณ์ธตํ ์ฌ๊ท ์ฟผ๋ฆฌ๋ ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ ์ ์๋๋ก $graphLookup ์คํผ๋ ์ด์ ์ ์ง์ํ๊ณ ์๋ค.
๊ณ์ธตํ ์ฌ๊ท ์ฟผ๋ฆฌ์ ์กฐ์ธ ์ฟผ๋ฆฌ ๋ชจ๋ ํ๋ ์ด์์ ์ปฌ๋ ์ ์ ๋์์ผ๋ก ์คํ๋๊ณ , ๊ณ์ธตํ ์ฌ๊ท ์ฟผ๋ฆฌ๋ ๊ฒฐ๊ตญ ์กฐ์ธ ์ฟผ๋ฆฌ์ ๋ ๋ค๋ฅธ ํํ๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
ํด๋น ์คํผ๋ ์ด์ ์ ๋ชจ๋ "from" ์ธ์์ ์ฃผ์ด์ง๋ ์ปฌ๋ ์ ์ ์ค๋ฉ๋ ์ปฌ๋ ์ ์ ์ฌ์ฉํ ์ ์๋ค.
์ค๋ ์๋ฒ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด์ ๋ค๋ฅธ ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐธ๊ณ ์๋ฃ
RealMongoDB
'๐ > mongoDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[mongoDB] ์ธ๋ฑ์ค(Index) (0) | 2022.07.18 |
---|---|
[mongoDB] WiredTiger ์คํ ๋ฆฌ์ง ์์ง (0) | 2022.07.15 |
๋๊ธ