Search
๐ŸŸฃ

DB: Replication, Scale out vs Scale up

์ž‘์„ฑ์ผ์ž
2023/05/12
ํƒœ๊ทธ
CS
ํ”„๋กœ์ ํŠธ
์ฑ…
์ฑ… ์ข…๋ฅ˜
1 more property

Replication

โ€ข
์ •์˜) ์‹ค์‹œ๊ฐ„ ๋ณต์ œ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ์šด์šฉํ•˜๋Š” ๊ฒƒ
โ—ฆ
๋‘ ๊ฐœ ์ด์ƒ์˜ DBMS ์‹œ์Šคํ…œ์„ Master / Slave(Replica)๋กœ ๋‚˜๋ˆ ์„œ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ
โ—ฆ
Master Node๋Š” ์“ฐ๊ธฐ ์ž‘์—…๋งŒ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , Slave Node๋Š” ์ฝ๊ธฐ ์ž‘์—…๋งŒ์„ ์ฒ˜๋ฆฌํ•จ
โ—ฆ
๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•จ
โ€ข
๋“ฑ์žฅ ๋ฐฐ๊ฒฝ)
โ—ฆ
ํ•˜๋‚˜์˜ ์„œ๋ฒ„์™€ ํ•˜๋‚˜์˜ Database๋ฅผ ๋’€๋”๋‹ˆ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์กŒ์„ ๋•Œ Database๊ฐ€ ๋งŽ์€ Query๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ํž˜๋“  ์ƒํ™ฉ์ด ์˜ด.
โ—ฆ
์ด๋•Œ Query์˜ ๋Œ€๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜๋Š” Select๋ฅผ ์–ด๋А ์ •๋„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๋ฐฉ๋ฒ•์ด Replication์ž„
Replication ์ ์šฉ ์ „
Replication ์ ์šฉ ํ›„
โ€ข
๋ฐฉ๋ฒ•)
1.
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— SQL ๋ช…๋ น์„ ๋ณด๋‚ด ๋ฐ์ดํ„ฐ ์‚ฝ์ž…/๋ณ€๊ฒฝ/์‚ญ์ œ ์š”์ฒญ๋ณด๋ƒ„
2.
Master๊ฐ€ ์š”์ฒญ ๋ฐ›์•„ binary log ์ƒ์„ฑํ•˜์—ฌ Slave ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•จ
3.
Master๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ binary log๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ˜์˜ํ•จ
๋ฐ์ดํ„ฐ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ตฌ์ฒด์ ์œผ๋กœ
โ€ข
์žฅ์ ) ๋ฐ์ดํ„ฐ ๋ฐฑ์—…, DBMS ๋ถ€ํ•˜ ๋ถ„์‚ฐ
โ—ฆ
Slave๊ฐ€ Master์™€ ๊ฑฐ์˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด, ์žฅ์•  ๋ณต๊ตฌ ์‹œ ๋ฐ์ดํ„ฐ ์†์‹ค ์ตœ์†Œํ™”๋จ (๋ฐ์ดํ„ฐ ์•ˆ์ •์„ฑ)
โ–ช
Slave ์„œ๋ฒ„๋ฅผ Master ์„œ๋ฒ„๋กœ ์Šน๊ฒฉ์‹œ์ผœ ๊ธฐ์กด Master ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณต๊ตฌ ์ง„ํ–‰๋จ
โ—ฆ
๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์šด์˜๋˜์–ด ์ง€์—ฐ ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์—†๋‹ค.
โ—ฆ
DB ์š”์ฒญ์˜ 60~80% ์ •๋„๊ฐ€ ์ฝ๊ธฐ ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— Replication๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๋‹จ์ )
โ—ฆ
๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์•„ ์ผ๊ด€์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค.
โ—ฆ
Master ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋˜๋ฉด ๋ณต๊ตฌ ๋ฐ ๋Œ€์ฒ˜๊ฐ€ ๊นŒ๋‹ค๋กญ๋‹ค.

Replication vs Clustering

โ€ข
Replication
โ—ฆ
์ •์˜) ์—ฌ๋Ÿฌ ๊ฐœ์˜ DB๋ฅผ ์ˆ˜์ง์ (Master, Slave)์ธ ๊ตฌ์กฐ๋กœ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ์‹
โ—ฆ
ํŠน์ง•) ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋…ธ๋“œ๋“ค ๊ฐ„์— ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”
โ—ฆ
์žฅ์ ) ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™๊ธฐํ™”๋˜์–ด ์ง€์—ฐ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์—†์Œ
โ—ฆ
๋‹จ์ ) ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์•„ ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ
โ€ข
Clustering
โ—ฆ
์ •์˜) ์—ฌ๋Ÿฌ ๊ฐœ์˜ DB๋ฅผ ์ˆ˜ํ‰์ ์ธ ๊ตฌ์กฐ๋กœ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ์‹
โ—ฆ
ํŠน์ง•) ๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋…ธ๋“œ๋“ค ๊ฐ„์— ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”
โ—ฆ
์žฅ์ ) 1๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์ฃฝ์–ด๋„ ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ์‚ด์•„ ์žˆ์–ด ์‹œ์Šคํ…œ์„ ์žฅ์•  ์—†์ด ์šด์˜ํ•  ์ˆ˜ ์žˆ์Œ
โ—ฆ
๋‹จ์ ) ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๋ฏ€๋กœ Replication์— ๋น„ํ•ด ์“ฐ๊ธฐ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง

AWS์—์„œ์˜ Database Replication

โ€ข
AWS์˜ RDS๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํƒ€์ž…์— ๋Œ€ํ•ด Replication ๊ธฐ๋Šฅ์„ ์ง€์›ํ•จ
โ€ข
๋ณต์ œ ์„œ๋ฒ„์ธ Replica๋Š” ์ฝ๊ธฐ ์ „์šฉ์ž„
โ€ข
Postgresql, Mysql, MaraiDB์— ๋Œ€ํ•ด ์ง€์›ํ•จ

Scale-out vs Scale-up

๊ฒฐ๋ก ๋งŒ ๋จผ์ € ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด, Replication์€ Scale-out ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
โ€ข
Scale-out
โ—ฆ
์ •์˜) โ€˜์Šค์ผ€์ผ ์•„์›ƒโ€™์ด๋ž€ย ์ ‘์†๋œ ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€ ์ถ”๊ฐ€ํ•˜์—ฌ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒํ•˜๋Š” ๋ฐฉ๋ฒ•์ž„
โ—ฆ
ํŠน์ง•)
โ–ช
์ˆ˜ํ‰ ์Šค์ผ€์ผ๋กœ ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•จ
โ–ช
์˜ˆ๋ฅผ ๋“ค์–ด, ํ•˜๋‚˜์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„ ์„œ๋ฒ„์— ๋™์ผํ•œ ์„œ๋ฒ„ 6๋Œ€๋ฅผ ๋” ์ถ”๊ฐ€ํ•˜์—ฌ, ์ด 7์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž„
โ—ฆ
๊ธฐ๋ฒ•)
โ–ช
Replication
โ–ช
Sharding : gkskdml
โ€ข
Scale-up
โ—ฆ
์ •์˜) โ€˜์Šค์ผ€์ผ ์—…โ€™์€ ์„œ๋ฒ„์— CPU๋‚˜ RAM ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ย ๊ณ ์„ฑ๋Šฅ์˜ ๋ถ€ํ’ˆ, ์„œ๋ฒ„๋กœ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•จ
โ—ฆ
ํŠน์ง•)
โ–ช
์ˆ˜์ง ์Šค์ผ€์ผ๋กœ ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•จ
โ–ช
์˜ˆ๋ฅผ ๋“ค์–ด, ํ•˜๋‚˜์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„ ์„œ๋ฒ„ ํ•œ ๋Œ€๋ฅผ 7์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„ ์„œ๋ฒ„๋กœ ๊ทธ ์ž์ฒด์˜ ์ฒ˜๋ฆฌ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ž„

๋ฒˆ์™ธ) ๋‹ค๋ฅธ ์Šคํ„ฐ๋””์›๋“ค ํ†ตํ•ด ๋ฐฐ์šด ๊ฒƒ

1. ์ฟ ํ‚ค์™€ ์„ธ์…˜

โ€ข
์ฟ ํ‚ค
โ—ฆ
์ •์˜) ์ƒํƒœ ์ •๋ณด ์ €์žฅํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ 
โ—ฆ
ํŠน์ง•) ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ, ๋” ์ •ํ™•ํ•˜๊ฒ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•จ
โ—ฆ
์˜ˆ์‹œ) ํฌ๋กฌ์—์„œ ๋กœ๊ทธ์ธ ํ–ˆ๋‹ค๊ฐ€ edge๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๋กœ๊ทธ์ธ ๋‹ค์‹œ ํ•ด์•ผ ํ•จ
โ€ข
์„ธ์…˜
โ—ฆ
ํŠน์ง•) ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ์ˆ 

2. DNS

โ€ข
๋„๋ฉ”์ธ : ์›๋ž˜ ์ง€์ •๋œ ์ธํ„ฐ๋„ท ์ ‘์† ์ฃผ์†Œ๋ฅผ www.์ด๋ฆ„.com ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ์–ด ์ค€ ๊ฒƒ
โ—ฆ
www๋Š” ํ˜ธ์ŠคํŒ… ์ฃผ์†Œ์ด๊ณ , ์ด๋ฆ„.com์„ ๋„๋ฉ”์ธ์ด๋ผ ํ•จ
โ€ข
DNS(๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ)
โ—ฆ
์ •์˜) ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๋Š” ์‹œ์Šคํ…œ
โ–ช
๊ฐ ๋„๋ฉ”์ธ๋“ค๋งˆ๋‹ค DNS ์„œ๋ฒ„(๋„ค์ž„์„œ๋ฒ„)๋ผ๋Š” ๊ฒŒ ์žˆ์Œ
โ—ฆ
๊ตฌ์„ฑ ์š”์†Œ)
1.
๋„๋ฉ”์ธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค
โ€ข
๋„๋ฉ”์ธ ๋„ค์ž„์„ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
2.
๋„ค์ž„ ์„œ๋ฒ„
โ€ข
๋„๋ฉ”์ธ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” IP ์ฃผ์†Œ ์ฐพ์•„์ฃผ๋Š” ์„œ๋ฒ„
3.
๋ฆฌ์กธ๋ฒ„ (๊ถŒํ•œ ์—†๋Š” DNS ์„œ๋ฒ„)
โ€ข
ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ๋„ค์ž„ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜๊ณ  ๋„ค์ž„์„œ๋ฒ„์—์„œ ์ฐพ์€ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ ํ•˜๋Š” ์„œ๋ฒ„
โ—ฆ
๊ตฌ์กฐ)
โ–ช
๋„ค์ž„ ์„œ๋ฒ„๊ฐ€ ํ•œ ๋Œ€๋งŒ ์žˆ๋‹ค๋ฉด ์„œ๋ฒ„ ์„ฑ๋Šฅ๊ณผ ์†๋„ ์ธก๋ฉด์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊น€
โ–ช
๋„ค์ž„ ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€ ๋งŒ๋“ ๋‹ค๋ฉด ๋„๋ฉ”์ธ๊ณผ IP ์ฃผ์†Œ ๋งคํ•‘ ์ •๋ณด๋ฅผ ๋ชจ๋“  ์„œ๋ฒ„์—์„œ ๊ณต์œ ํ•ด์•ผ ํ•จ
โ–ช
๋”ฐ๋ผ์„œ ๋„๋ฉ”์ธ์„ ๊ณ„์ธต์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ๋„๋ฉ”์ธ๊ณผ IP์ฃผ์†Œ๋ฅผ ๋ถ„์‚ฐํ•ด ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•จ

3. Optimizer

โ€ข
์ •์˜)
โ—ฆ
์ฟผ๋ฆฌ ๋‚ ๋ฆด ๋•Œ ์ตœ์ ์˜ ์ตœ์†Œ์˜ ๋น„์šฉ ์†Œ๋ชจ๋˜๊ฒŒ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ
โ—ฆ
์ฟผ๋ฆฌ๋ฅผ ์ตœ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋ถ„ํฌ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ์ฐธ์กฐํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ์˜ ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•ด์ฃผ๋Š” ๊ฒƒ
โ€ข
๊ณผ์ •) SQL ์‹คํ–‰๋์„ ๋•Œ ์–ด๋–ป๊ฒŒ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ตœ์ ํ™” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€
โ—ฆ
SQL์„ ๋‚ ๋ฆฌ๋ฉด, SQL ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด SQL์ด ์ปดํŒŒ์ผ๋จ
โ—ฆ
SQL๋ฌธ์ด ์ปดํŒŒ์ผ ๋˜๋ฉด, ๊ด€๊ณ„ ๋Œ€์ˆ˜๊ฐ€ ๋จ. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฟผ๋ฆฌ ํ”Œ๋žœ์ด ์ƒ์„ฑ๋จ
โ–ช
์งˆ์˜ ์ตœ์ ํ™”ํ•  ๋•Œ SQL์ด ์•„๋‹ˆ๋ผ, ๊ด€๊ณ„ ๋Œ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ฟผ๋ฆฌ ํ”Œ๋žœ์ด ๊ณ ๋ ค๋จ
โ–ช
์ฟผ๋ฆฌ ํ”Œ๋žœ
โ€ข
SQL ์งˆ์˜ ์ฒ˜๋ฆฌํ•  ๋•Œ ๊ด€๊ณ„ ๋Œ€์ˆ˜ ์—ฐ์‚ฐ์ž๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ํŒŒ์‹ฑ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ฆ
โ€ข
๊ฐ๊ฐใ„ฑ์˜ ๊ด€๊ณ„ ๋Œ€์ˆ˜ ์—ฐ์‚ฐ์ž ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€, ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์“ธ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ
โ€ข
์ด์Šˆ)
โ—ฆ
SQL ์งˆ์˜ ์ฒ˜๋ฆฌ ์‹œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ตœ์ ํ™” ์‹œํ‚ค๋Š” ๊ฒƒ
โ–ช
ํ•ด๋‹น ์ฟผ๋ฆฌ์—์„œ ์–ด๋–ค plan๋“ค์ด ๊ณ ๋ ค๋  ์ˆ˜ ์žˆ๋Š”์ง€
โ–ช
๊ฐ plan๋“ค์˜ cost ์–ด๋–ป๊ฒŒ ์‚ฐ์ •ํ•  ์ˆ˜ ์žˆ์„์ง€
โ—ฆ
์ด์ƒ์ ์œผ๋ก  best plan์„ ์ฐพ๊ณ ์ž ํ•˜์ง€๋งŒ, ํ˜„์‹ค์ ์œผ๋กœ worst plan์„ ํ”ผํ•˜๋Š” ๊ฒƒ์ž„(NP๋ฌธ์ œ)
โ€ข
์ฟผ๋ฆฌ ์‹คํ–‰ ์ ˆ์ฐจ) MySQL์„ ์˜ˆ์‹œ๋กœ ๋“ฌ
โ—ฆ
์ฟผ๋ฆฌ ์‹คํ–‰๋˜๋Š” ์„ธ ๋‹จ๊ณ„
1.
ํŒŒ์‹ฑ ๋‹จ๊ณ„ : SQL์„ SQL ์„œ๋ฒ„๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์œผ๋กœ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ ๋ถ„๋ฆฌ(ํŒŒ์Šค ํŠธ๋ฆฌ)
โ€ข
์‹ค์ œ๋กœ SQL์„œ๋ฒ„๋Š” SQL๋ฌธ์žฅ์ด ์•„๋‹Œ SQL ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ์ฟผ๋ฆฌ ์‹คํ–‰ํ•จ
2.
ํŒŒ์Šค ํŠธ๋ฆฌ ํ™•์ธํ•˜๋ฉด์„œ ์–ด๋–ค ํ…Œ์ด๋ธ”๋ถ€ํ„ฐ ์ฝ๊ณ  ์–ด๋–ค ์ธ๋ฑ์Šค ์ด์šฉํ• ์ง€ ์„ ํƒ
3.
๊ฒฐ์ •ํ•œ ์ฝ๊ธฐ ์ˆœ์„œ๋‚˜ ์„ ํƒ๋œ ์ธ๋ฑ์Šค ์ด์šฉํ•ด Storage Engine์„ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด์— ์žˆ๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ด
โ€ข
์ข…๋ฅ˜)
โ—ฆ
๊ทœ์น™ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™”
โ–ช
๋ฌด์กฐ๊ฑด Optimizer์— ๋‚ด์žฅ๋œ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์‹คํ–‰ ๊ณ„ํš ์ˆ˜๋ฆฝ
โ–ช
์œ ์—ฐํ•˜์ง€ ์•Š์•„ ํ˜„์žฌ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
โ—ฆ
๋น„์šฉ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™”
โ–ช
์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ• ๋งŒ๋“ค๊ณ  ๊ฐ ๋‹จ์œ„ ์ž‘์—…์˜ ๋น„์šฉ ์ •๋ณด์™€ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์˜ ํ†ต๊ณ„ ์ •๋ณด ์ด์šฉํ•ด์„œ ๊ฐ ์‹คํ–‰ ๊ณ„ํš์˜ ๋น„์šฉ ์‚ฐ์ถœํ•จ. ์‚ฐ์ถœ๋œ ์ •๋ณด ์ด์šฉํ•ด ๊ฐ€์žฅ ์ ์€ ๋น„์šฉ ๋“œ๋Š” ์‹คํ–‰ ๊ณ„ํš ์„ ํƒํ•ด ์ฟผ๋ฆฌ ์‹คํ–‰ํ•จ
โ€ข
๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
โ—ฆ
ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ”
โ–ช
ํ’€ ์Šค์บ”์„ ํ•˜๋Š” ๊ฒฝ์šฐ
โ€ข
ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜ ๋„ˆ๋ฌด ์ž‘์•„์„œ ์ธ๋ฑ์Šค ํ†ตํ•ด ์ฝ๋Š” ๊ฒƒ๋ณด๋‹ค ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ” ํ•˜๋Š” ํŽธ์ด ๋” ๋น ๋ฅธ ๊ฒฝ์šฐ
โ€ข
where์ ˆ์ด๋‚˜ on์ ˆ์— ์ธ๋ฑ์Šค ์ด์šฉํ• ๋งŒํ•œ ์ ์ ˆํ•œ ์กฐ๊ฑด์ด ์—†๋Š” ๊ฒฝ์šฐ
โ€ข
์ธ๋ฑ์Šค ๋ ˆ์ด์ง€ ์Šค์บ” ํ•  ์ˆ˜ ์žˆ์–ด๋„ ์กฐ๊ฑด์— ์ผ์น˜ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ
โ–ช
๋Œ€๋ถ€๋ถ„์˜ DBMS๋Š” ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ” ์‹คํ–‰ ์‹œ ์—ฌ๋Ÿฌ ๊ฐœ ๋ธ”๋ก์ด๋‚˜ ํŽ˜์ด์ง€ ์ฝ์–ด์˜ค๋Š” ๊ธฐ๋Šฅ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์Œ
โ—ฆ
ํ’€ ์ธ๋ฑ์Šค ์Šค์บ”

ํ•˜๋ฃจ ์ •๋ฆฌ

TIL ์ž‘์„ฑํ•˜๊ธฐ
GDSC
js ๊ฐ•์˜์ž๋ฃŒ ์ œ์ž‘
PS
Do it 1์ผ์ฐจ
์†”์ฑŒ 8์‹œ ํšŒ์˜
CS ์Šคํ„ฐ๋”” ์ค€๋น„(์ฃผ์ œ: Replication), 10์‹œ ์Šคํ„ฐ๋””
โ€ข
์‹œ๊ฐ„ ๋‚  ๋•Œ ๊นƒํ—™ ๋ฆฌ๋“œ๋ฏธ ํ‘œ ์•ˆ์— ํ† ๊ธ€์„ ๋„ฃ์ž! ๋ฐฐ์šด ์ ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹จ, ์ค„์ค„ ๋Š˜์–ด๋†“์ง€ ๋ง๊ณ  ๊น”๋”ํ•˜๊ฒŒ ํ•ต์‹ฌ๋งŒ
<details> <summary>ํ† ๊ธ€ ์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ</summary> <div markdown="1">์•ˆ๋…•</div> </details>
JavaScript
๋ณต์‚ฌ