๋๊ท๋ชจ ๋ฐ์ดํฐ๋ ์ด๋ค ์ ์ด ์ด๋ ค์ด๊ฐ?
- ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ๊ณ์ฐํ ์ ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ๊ณ์ฐํ ์ ์๊ฒ ๋๋ฉด ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํด์ผ ํ๋ค.
- ํ์ง๋ง ๋์คํฌ์ I/O๋ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋๋ฆฌ๋ฏ๋ก ์ด๋ฅผ ์ด๋ป๊ฒ ๋์ฒํ๋์ง๊ฐ ์ด๋ ค์ด ์ ์ด๋ค.
๋์คํฌ๊ฐ ๋๋ฆฐ ์ด์ ?
์ฝ๋ ์๋
- (SSD๊ฐ ์๋) ์๋ฐํ์ HDD๋ ์๋ฐ์ ์ฝ๋ ํค๋๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋์๊ฐ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋๋ค.
- ๋ฐ๋ผ์ ๋ฐ์ดํฐ์ ์์น๊น์ง ํค๋๋ฅผ ์ฎ๊ธฐ๋ ์๊ฐ, ํค๋๋ฅผ ํ์ ์ํค๋ฉด์ ์ฝ๋ ์๊ฐ ๋ฑ์ด ์์๋๊ฒ ๋๋ค.
- ์ฝ์ด์ผ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๊ธฐ์ ๊ธฐ ๋ถ์ฐ๋์ด ์๋ค๋ฉด ์ฝ๋์๊ฐ์ด ๋ ์ค๋๊ฑธ๋ฆฌ๊ฒ ๋๋ค. (๋ฐ๋ผ์OS ์ฐจ์์์๋ ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ณดํต 4KB๋จ์์ ๋ธ๋ก์ผ๋ก ๊ตฌ๋ถํด์ ์ ์ฅํ๋ค)
์ ์ก ์๋
- ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ๋ CPU์ ๋ฒ์ค๋ก ์ฐ๊ฒฐ๋์ด ์๋๋ฐ
- ๋ฉ๋ชจ๋ฆฌ โย CPU์ ๋ฒ์ค๋ ๋์ ๋์ญํญ์ ๋ฒ์ค๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ , ๋์คํฌ โย CPU๋ ๋น๊ต์ ๋ฎ์ ๋์ญํญ์ ๋ฒ์ค๋ก ์ฐ๊ฒฐ๋์ด ์๋ค.
๋ฐ๋ผ์ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์ค๋ ๊ฒ ๋ณด๋ค ํญ์ ๋๋ฆฌ๋ค. (์ฑ ์์๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋์คํฌ๋ณด๋ค 105 ~ 106๋ฐฐ ์ด์ ๋น ๋ฅด๋ค๊ณ ํ๋ค.)
์์คํ ํ์ฅ์ฑ
- ์๋ฒ์์ ๋ถํ๋ก ์ธํด ์ฒ๋ฆฌ ์๋๊ฐ ๋ฎ์์ง๋ฉด ์์คํ ์ ํ์ฅํด์ผ ํ๋ค.
- ํ์ฅ ๋ฐฉ๋ฒ์๋ scale out(์๋ฒ ๋์๋ฅผ ๋๋ฆฌ๊ธฐ)๊ณผ scale up(์๋ฒ ์ฑ๋ฅ์ ๋์ด๊ธฐ) ๋ ๊ฐ์ง๊ฐ ์๋ค.
- ์ฃผ๋ก ์ ๋ ดํ๊ณ ํ์ฅ์ ์ ์ฐํ๊ธฐ ๋๋ฌธ์ scale out ๋ฐฉ๋ฒ์ ๋ง์ด ์ด๋ค.
๋ถํ
๋ถํ์๋ ๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค.
- CPU ๋ถํ โ ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ ๋ง์ ๊ณ์ฐ์ ์ํํ๋ ๊ฒฝ์ฐ
- I/O ๋ถํ โ ๋์คํฌ ์ ์ถ๋ ฅ์ด ๋ง์ ๊ฒฝ์ฐ. DB์ ๊ฑธ๋ฆฌ๋ ๋ถํ
DB ํ์ฅ์ฑ ํ๋ณด์ ์ด๋ ค์
- ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ์ฃผ๋ก CPU ๊ณ์ฐ๋ง ์ํํ๊ธฐ ๋๋ฌธ์ ๋์๋ฅผ ๋๋ ค์ ํ์ฅํ๊ธฐ ์ฝ์ง๋ง DB๋ ๊ทธ๋ ์ง ์๋ค.
- ์ฌ๋ฌ ๋์ DB๋ฅผ ๋๋ค๊ณ ํ์ ๋, ํ DB์ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ DB๋ค์ ์ด๋ป๊ฒ ๋๊ธฐํ ํด์ผ ํ๋์ง๋ถํฐ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
DB ๋ถ์ฐํ๊ธฐ
๋ฉ๋ชจ๋ฆฌ ์ฆ์ค๋ง์ผ๋ก๋ ๋ถํ ๊ฐ๋น์ด ๋ถ๊ฐ๋ฅํ๋ค๋ฉด DB๋ฅผ ํํฐ์ ๋ ํด์ผํ๋ค. ํํฐ์ ๋์ ๊ตญ์์ฑ์ ํ์ฉํด์ ๋ถ์ฐํ ์ ์์ผ๋ฏ๋ก ์บ์๊ฐ ์ ํจํ๊ณ , ๊ทธ๋์ ํํฐ์ ๋์ ํจ๊ณผ์ ์ผ ์ ์๋ค.
๊ตญ์์ฑ(locality)์ ๊ณ ๋ คํ๊ธฐ
- DB ํ ์ด๋ธ ๋จ์๋ก ํํฐ์ ๋
- ์์ฒญ ์ ํ์ ๋ฐ๋ผ ํํฐ์
๋
- ex. bot์ธ์ง ์ผ๋ฐ ์ฌ์ฉ์์ธ์ง
๋ถ์ฐ์ ๊ณ ๋ คํ MySQL ์ด์ฉ๋ฐฉ๋ฒ
-
OS ์บ์ ํ์ฉํ๊ธฐ
- ๋ฐ์ดํฐ๋ < ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ ์ง.
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉด ์กฐ๊ธ์ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ ๋ง์ผ๋ก๋ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๊ฐ๋ฐ์ดํธ ๋จ์๋ก ์ฆ๊ฐํ ์ ์๋ค.
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ค๋ ํ ์ด๋ธ์ ๋ ์ฝ๋๊ฐ ๊ฐ๋ฅํ ์์์ง๋๋ก ์ปดํฉํธํ๊ฒ ์ค๊ณ.
-
์ ๊ทํ
- ์ ๊ทํ๋ฅผ ํ๋ฉด ํ ์ด๋ธ ์ฉ๋์ด ์ค์ด์ ์ข์ ์ ์์ง๋ง
- ๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ์คํ๋ ค ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํด์ ์๋๊ฐ ๋จ์ด์ง ์ ์์ผ๋ฏ๋ก trade-off๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
-
DB ์ธ๋ฑ์ค ์ ์ ํ๊ฒ ์ค์ ํ๊ธฐ
- MySQL์ ์ธ๋ฑ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก B+ํธ๋ฆฌ ๊ตฌ์กฐ (ํ์์๋ O(logn)) ์ด๋ฏ๋ก ์ ํ ํ์๋ณด๋ค ์๋ฑํ ๋น ๋ฅด๋ค.
-
ํ์ฅ์ ์ ์ ๋ก ์ค๊ณํ๊ธฐ
- ์ฝ๊ธฐ > ์ฐ๊ธฐ: ๋ ํ๋ฆฌ์ผ์ด์
(Replication)
- DB๋ค์ Master-Slave๋ก ๊ตฌ๋ถํด์ ์ฐ๊ธฐ๋ Master์, ์ฝ๊ธฐ๋ Slave์์ ํ๋ ๊ฒ.
- Master์ ์ฐ๋ฉด Slave๊ฐ ๋์ผํ ๋ด์ฉ์ผ๋ก ์์ ์ ๊ฐฑ์ ํ๋ค.
- ์ฐธ๊ณ ) ๋ง์คํฐ-์ฌ๋ ์ด๋ธ์ ๋ค์คํ ๋ฐฉ๋ฒ
- 4๊ฐ ์ด์์ด ํ ์ธํธ์ด๋ค.
- ์ฌ๋ ์ด๋ธ๊ฐ ํ๋ ๊ณ ์ฅ๋๋ฉด ๋ค๋ฅธ ํ๋์ ์ฌ๋ ์ด๋ธ๋ฅผ ์ค์ง์ํค๊ณ ์ ์๋ฒ์ ๋ณต์ฌํด์ผ ํ๋ฏ๋ก ์ฌ๋ ์ด๋ธ๊ฐ 3๊ฐ ์ด์ ํ์ํ๋ค.
- ๋ง์คํฐ๊ฐ ๊ณ ์ฅ๋๋ฉด ์ฌ๋ ์ด๋ธ ์ค ํ๋๋ฅผ ๋ง์คํฐ๋ก ์น๊ฒฉ์ํจ๋ค.
- ์ฐธ๊ณ ) ๋ง์คํฐ-์ฌ๋ ์ด๋ธ์ ๋ค์คํ ๋ฐฉ๋ฒ
- ์ฝ๊ธฐ < ์ฐ๊ธฐ ๋ผ๋ฉด
- ํ ์ด๋ธ์ ๋ถํ ํด์ ์ฐ๊ธฐ ์์ ์ ๋ถ์ฐ
- RDBMS ๋์ Key-Value ์ ์ฅ์ ์ฌ์ฉํ๊ธฐ
- ๋จ์ํ ๊ฐ์ ์ ์ฅํ๊ณ ๊บผ๋ด๋ฏ๋ก, RDMBS์ ์คํค๋ง ๊ฒ์ฌ, ์ ๋ ฌ ์ฒ๋ฆฌ ๋ฑ์ ์ค๋ฒํค๋๊ฐ ์ ํ ๋ฐ์ํ์ง ์์ ๋น ๋ฅด๋ค.
- ์๋ก JOINํ๋ ํ
์ด๋ธ์ ๋ถ์ฐํ์ง ๋ง ๊ฒ.
- ๋, MySQL 5.1 ๋ถํฐ๋ ๋ค๋ฅธ ๋จธ์ ์ ํ ์ด๋ธ๊ณผ JOINํ ์ ์๋ FEDERATE ๊ธฐ๋ฅ์ด ์กด์ฌ.
- ์ฝ๊ธฐ > ์ฐ๊ธฐ: ๋ ํ๋ฆฌ์ผ์ด์
(Replication)
ํํฐ์ ๋์ ๋จ์
- ์ด๋์ ์ด๋ค ํ ์ด๋ธ์ด ์๋์ง๋ฅผ ํ์ธํด์ผ ํ๋ฏ๋ก ์ด์์ด ๋ณต์กํด์ง๋ค.
- ๋์๊ฐ ๋์ด๋๋ฏ๋ก ๊ณ ์ฅ๋ฅ ์ด ๋์์ง๋ค.
์คํ ๋ฆฌ์ง ์ ํํ๊ธฐ
์คํ ๋ฆฌ์ง ์ ํ์ ์ ์ ์กฐ๊ฑด
- ์ดํ๋ฆฌ์ผ์ด์
์ ์ก์ธ์ค ํจํด์ ์ดํดํ๊ธฐ
- ํ๊ท ํฌ๊ธฐ
- ์ต๋ ํฌ๊ธฐ
- ์ ๊ท ์ถ๊ฐ ๋น๋
- ๊ฐฑ์ ๋น๋
- ์ญ์ ๋น๋
- ์ฐธ์กฐ ๋น๋
- ์ ๋ขฐ์ฑ
- ํ์ฉํ ์ ์๋ ์ฅ์ ๋ ๋ฒจ
์น ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์/์บ์ ์์คํ
- ํฌ์๋(Forward) ํ๋ก์
- ํด๋ผ์ด์ธํธ๊ฐ ์ธ๋ถ ๋คํธ์ํฌ์ ์ ๊ทผํ ๋ ๊ฒฝ์ .
- ํด๋ผ์ด์ธํธ๋ฅผ ์ธ๋ถ์ ์จ๊ธด๋ค.
- ๋ฆฌ๋ฒ์ค(Reverse) ํ๋ก์
- ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์๋จ์ ๋๋ ๊ฒ.
- ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฒ๋ฅผ ์จ๊ธด๋ค.
๐ ์๊ฐ
2011๋ ์ ๋์จ ๊ฝค ์ค๋๋ ์ฑ ์ด๋ผ ์์ฆ์๋ ์์ฐ๋ ์๋ ์ง์์ ๋ค๋ฃจ๊ณ ์์ ์ง ๊ฑฑ์ ํ์ง๋ง, ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ๋ค์ ๋ค๋ฃจ๊ณ ์์ด์ ๋ฌธ์ ๋์ง ์์๋ค..! ๋๊ท๋ชจ ์น ์๋น์ค์์๋ ์ด๋ค ๊ณ ๋ฏผ์ ํ๋์ง์ ๋ํด ํญ๋๊ฒ ์ ์ ์๋ ์ข์ ๊ณ๊ธฐ.