๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Legacy

2022.04.26์˜ ๊ธฐ๋ก

by GroovyArea 2022. 4. 26.

โ–ถ ํŒŒํŠธ 1 (10์‹œ ~ 11์‹œ 10๋ถ„)

1. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ตœ์ข… ์ˆ˜์ •

2. ์ถ”ํ›„ ๊ณ„ํš ์ •๋ฆฌ

3. ๋ณด๊ฑด์ฆ ๋ฐœ๊ธ‰ ๋ฐ ์•Œ๋ฐ” ์ค€๋น„

โ–ถ ํŒŒํŠธ 2 (3์‹œ ~ 12์‹œ)

1. ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ›„ ๊นƒ ์—ฐ๋™ (์ด๊ฑด ์ด์ œ ์•ˆ ๊นŒ๋จน๊ฒ ๋‹ค..)

2. ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ˆ˜์ •

3. mysql ์งˆ๋ฌธ ์ •๋ฆฌ ๋ฐ CH 8, 9(9.2.3 ์ „๊นŒ์ง€) ์ •๋ฆฌ

4. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณ ๋“์  ํ‚คํŠธ - ํ•ด์‹œ

5. mysql workbench ์„ค์น˜

 

โ–ถ ์ตœ๊ทผ ์ด์Šˆ

1. ์‹œ๊ฐ„ ๋ถ€์กฑ

=> ํ•™์› ์ˆ˜๋ฃŒํ•ด์„œ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋‚ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์ ์€ ๊ฒƒ ๊ฐ™๋‹ค..

> ์›์ธ : ์šด๋™ ๊ฐ”๋‹ค ์˜ค๋Š” ์‹œ๊ฐ„, ์•Œ๋ฐ” ์‹œ๊ฐ„

> ํ•ด๊ฒฐ : 1์‹œ๊ฐ„๋งŒ ๋” ์ผ์ฐ ์ผ์–ด๋‚˜ ๋ณด์ž, ์šด๋™์€ ์งง๊ณ  ๊ตต๊ฒŒ.

 

2. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ 

=> ์ž๋ฐ” ํ”„๋กœ์ ํŠธ ํ›„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉฐ TDD ๋ฐฉ์‹์„ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค.

=> ์ด๋ฏธ ์งœ์ธ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋‘๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ

> ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ๋•Œ ์ ์šฉํ•  ๊ฒƒ

 

3. ๊นƒ ํ—ˆ๋ธŒ ์ •๋ฆฌ

=> ๊นƒํ—ˆ๋ธŒ๋กœ ๋ฆฌ๋“œ๋ฏธ์™€ ์œ„ํ‚ค ์ •๋ฆฌ ๋ฏธํก

> ์ด๋ฒˆ ์ฃผ ์ค‘ ์•Œ๋ฐ” ์‰ฌ๋Š” ๋‚  ์žก๊ณ  ํ•˜๋ฃจ์— ํ•ด๋ณด์ž

 

4. ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ

=> ํ”„๋กœ์ ํŠธ์šฉ ์ค‘๊ฐ„ ํšŒ๊ณ  ํ•„์š”

> ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฉ”์ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์ค‘๊ฐ„ ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฒฐ์ •

 

5. DB ๊ณต๋ถ€

=> ์–ด๋ ต๋‹ค.

> ์ต์ˆ™ํ•ด์งˆ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ณด๊ณ  ์งˆ๋ฌธ ๋‹ต์Šต ํ•„์ˆ˜

 

6. ์•Œ๊ณ ๋ฆฌ์ฆ˜

=> ๊ณ ๋“์  ํ‚คํŠธ๋กœ ใ„ฑใ„ฑ

> ๋ฌธ์ œ์˜ ์œ ํ˜•์ด ๋น„์Šทํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ๋ฆ„์„ ์ฝ์ž

> ์ฝ”ํ…Œ ๋ณด๋Š” ๊ณณ ์ง€์›ํ•ด์„œ ๊ฒฝํ—˜ ์Œ“์•„๋ณด๊ธฐ

 

โ–ท DB ์ •๋ฆฌ

1. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?

  • ํ–‰๊ณผ ์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ๊ฐ์˜ ํ…Œ์ด๋ธ”์„ ๊ณ ์œ ๊ฐ’(Primary Key)์„ ์ฐธ์กฐํ•˜์—ฌ ์„œ๋กœ ์ข…์†๋˜๋Š” ๊ด€๊ณ„(=์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ)๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ตฌ์กฐ

RDBMS์˜ ์žฅ์ 

  1. ๋ฐ์ดํ„ฐ์˜ ๋ถ„๋ฅ˜, ์ •๋ ฌ, ํƒ์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  2. ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋œ ๋งŒํผ ์‹ ๋ขฐ์„ฑ์ด ๋†’๊ณ , ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋„ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ด ์ค๋‹ˆ๋‹ค.
  3. ๊ธฐ์กด์— ์ž‘์„ฑ๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

2. MySQL์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์—”์ง„

 

[MySQL]InnoDB VS MyISAM

MySQL์˜ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์—”์ง„์œผ๋กœ๋Š” InnoDB์™€ MyISAM์ด ์žˆ๋‹ค. InnoDB ์—”์ง„์€ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ถ€๋ถ„์—์„œ ํšจ์œจ์ ์ด๊ณ , MyISAM ์—”์ง„์€ ํŠธ๋žœ์žญ์…˜

velog.io

InnoDB

  • ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ํ•„์š”, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ถ€๋ถ„์—์„œ ํšจ์œจ์ 
  • ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”๊ฐ€ ๋งŽ์€ ์„œ๋น„์Šค

MVCC

  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์˜ ๋‹ค์ค‘ ๋ฒ„์ „ ์ƒํƒœ ์ค‘ ๋ณด์žฅ๋˜๋Š” ๋ฒ„์ „์— ๋งž๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธ
  • ์–ธ๋‘ ์˜์—ญ์— ์˜ํ•ด ๊ฐ€๋Šฅ
  • https://mozi.tistory.com/561
 

[DATABASE] MVCC ๊ตฌ์กฐ์™€ ์ดํ•ด

MVCC ๋ž€ ( Multi Version Concurrency Control ) ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์˜ ๋‹ค์ค‘๋ฒ„์ „ ์ƒํƒœ ์ค‘ ๋ณด์žฅ๋˜๋Š” ๋ฒ„์ „์— ๋งž๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๋‹ค์ค‘

mozi.tistory.com

์–ธ๋‘ ์˜์—ญ์ด๋ž€

  • UPDATE ๋ฌธ์žฅ์ด๋‚˜ DELETE ๋ฌธ์žฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋ณ€๊ฒฝ๋˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ(์ด์ „ ๋ฐ์ดํ„ฐ)๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๊ณณ
  • ํŠธ๋žœ์žญ์…˜์˜ ๋กค๋ฐฑ ๋Œ€๋น„์šฉ
  • ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋†’์€ ๋™์‹œ์„ฑ์„ ์ œ๊ณต

MyISAM

  • ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ํ•„์š” ์—†์Œ, Read only ๊ธฐ๋Šฅ์ด ๋งŽ์€ ์„œ๋น„์Šค์ผ ์ˆ˜๋ก ํšจ์œจ์ 
  • select๊ฐ€ ๋งŽ์€ ์„œ๋น„์Šค

3. ํŠธ๋žœ์žญ์…˜์ด๋ž€?

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—… ๋‹จ์œ„

ํŠธ๋žœ์žญ์…˜์˜ 4๊ฐ€์ง€ ํŠน์ง•

1. ์›์ž์„ฑ

  • ํŠธ๋žœ์žญ์…˜์ด DB์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜, ์ „ํ˜€ ๋ฐ˜์˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜
  • All or Nothing

2. ์ผ๊ด€์„ฑ

  • ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ฒ˜๋ฆฌ์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ์ผ๊ด€๋˜์–ด์•ผ ํ•จ
  • ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ฐ˜ํ™˜ ํ›„์™€ ์ „์ด ํ•ญ์ƒ ๋™์ผ

3. ๋…๋ฆฝ์„ฑ

  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ๋ผ์–ด๋“ค ์ˆ˜ ์—†๊ณ  ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋…๋ฆฝ์ ์ž„์„ ์˜๋ฏธ
  • ๊ฐ๊ฐ์˜ ํŠธ๋žœ์žญ์…˜์€ ๋…๋ฆฝ์ ์ด๋ผ ์„œ๋กœ ๊ฐ„์„ญ์ด ๋ถˆ๊ฐ€๋Šฅ

4. ์ง€์†์„ฑ

  • ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ์˜๊ตฌ์ ์œผ๋กœ ๊ฒฐ๊ณผ์— ๋ฐ˜์˜๋˜์–ด์•ผ ํ•จ
  • ๋ณดํ†ต commit์ด ๋œ๋‹ค๋ฉด ์ง€์†์„ฑ์€ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฒฉ๋ฆฌ์ˆ˜์ค€

  • ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด๋ž€ ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์ฒ˜๋ฆฌ๋  ๋•Œ, ํŠธ๋žœ์žญ์…˜๋ผ๋ฆฌ ์–ผ๋งˆ๋‚˜ ์„œ๋กœ ๊ณ ๋ฆฝ๋˜์–ด ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ
  • ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ• ์ง€ ๋ง์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ
  • https://velog.io/@sa1341/ํŠธ๋žœ์žญ์…˜-๊ฒฉ๋ฆฌ-์ˆ˜์ค€ Isolation-Level์ด๋ž€
 

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation Level)์ด๋ž€?

ํšŒ์‚ฌ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๊ฒฝ์šฐ ๊ฐ€๋” ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์— ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„์—์„œ Lock์„ ์‚ฌ์šฉํ•˜์—ฌ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ง๋ ฌํ™”ํ•จ์œผ๋กœ์จ ๋™์‹œ์„ฑ์„ ์ฒ˜๋ฆฌ ํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋Š”๋ฐ, ์ข€ ๋” ์ƒ

velog.io

1. READ uncommitted

  • ์–ด๋–ค ํŠธ๋žœ์žญ์…˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด COMMIT์ด๋‚˜ ROLLBACK๊ณผ ์ƒ๊ด€์—†์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณด์ž„
  • ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ, RDBMS ํ‘œ์ค€์—์„œ๋Š” ๊ฒฉ๋ฆฌ ์ˆ˜์ค€ ์ธ์ • ์•ˆ ํ•จ
  • Dirty Read ์ด์Šˆ : ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ์ „ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ

2. READ committed

  • ์–ด๋–ค ํŠธ๋žœ์žญ์…˜์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด COMMIT ๋˜์–ด์•ผ๋งŒ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์กฐํšŒ ๊ฐ€๋Šฅ
  • ์˜ค๋ผํด์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ์˜จ๋ผ์ธ ์„œ๋น„์Šค์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฉ๋ฆฌ ์ˆ˜์ค€
  • NON-REAPEATABLE READ ๋ถ€์ •ํ•ฉ ๋ฌธ์ œ ๋ฐœ์ƒ : ์ž์‹ ์˜ ํŠธ๋žœ์žญ์…˜ ๋ฒˆํ˜ธ๋ณด๋‹ค ๋‚ฎ์€ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝ๋œ(์ปค๋ฐ‹๋œ) ๊ฒƒ๋งŒ ๋ณด๊ฒŒ ๋˜๋Š” ๊ฒƒ

3. REPEATABLE READ

  • ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปค๋ฐ‹๋œ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Œ
  • MySQL์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , NON-REAPEATABLE READ ๋ถ€์ •ํ•ฉ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
  • ์–ธ๋‘ ์˜์—ญ ์ด์šฉ
  • Phantom Read ์ด์Šˆ : ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๊ฐ™์€ ์ฟผ๋ฆฌ ๋‘ ๋ฒˆ ์‹คํ–‰ ์‹œ ์ฒซ ๋ฒˆ์งธ ์—†๋˜ ์œ ๋ น ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ - Insert ์‹œ ๋ฐœ์ƒ

4. SERIALIZABLE

  • ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ€์žฅ ์—„๊ฒฉํ•œ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€
  • InnoDB์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆœ์ˆœํ•œ SELECT ์ž‘์—…์€ ์•„๋ฌด๋Ÿฐ ์ž ๊ธˆ์„ ๊ฑธ์ง€ ์•Š๊ณ  ๋™์ž‘ํ•˜๋Š”๋ฐ, ์ฝ๊ธฐ ์ž‘์—…์—๋„ ๊ณต์œ  ์ž ๊ธˆ์„ ์„ค์ •ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌ๋ฉด ๋™์‹œ์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์ด ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋จ
  • ๋™์‹œ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์ด ๋‹ค๋ฅธ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€๋ณด๋‹ค ๋–จ์–ด์ง€๋ฉฐ, ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค

4. ์ธ๋ฑ์Šค๋ž€?

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์˜ ์†๋„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ํ•ด๋‹น ์นผ๋Ÿผ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ๋ฐ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ์ €์žฅ๋จ - ๊ฒ€์ƒ‰ ์†๋„์˜ ํ–ฅ์ƒ
  • ์ฑ…์— ์žˆ๋Š” ๋ชฉ์ฐจ ๊ฐ™์€ ๊ฒƒ

ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค์™€ ๋„Œ ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค

 

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค์™€ ๋„Œํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค/ ๊ฐœ๋… ์ด์ •๋ฆฌ

์˜ค๋Š˜์€ ์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜์ธ ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค, ๋„Œ ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ธ๋ฑ์Šค๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ปฌ๋Ÿผ์„ ์ •๋ ฌํ•œ ํ›„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋น 

junghn.tistory.com

๋‘ ์ธ๋ฑ์Šค์˜ ํŠน์ง•์  ์ฐจ์ด

  1. ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์กฐํšŒํ•˜๋Š”๊ฐ€?
  • ํด๋Ÿฌ์Šคํ„ฐ : ํŽ˜์ด์ง€๋ฅผ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ๊ทธ ํŽ˜์ด์ง€๋ฅผ ํŽด๋Š” ๊ฒƒ
  • ๋„Œ ํด๋Ÿฌ์Šคํ„ฐ : ๋’ค์— ๋ชฉ์ฐจ์—์„œ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ์˜ ํŽ˜์ด์ง€๋ฅผ ์ฐพ๊ณ  ๊ทธ ํŽ˜์ด์ง€๋กœ ์ด๋™
  • ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ ์œ„์น˜๋ฅผ ๋ฐ”๋กœ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ , ๋„Œ ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค๋Š” ์ธ๋ฑ์Šค ํŽ˜์ด์ง€๋ฅผ ํ•œ๋ฒˆ ๊ฑฐ์ณ์„œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  1. ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‚ญ์ œ ๋“ฑ์—์„œ ์–ด๋–ค ๊ฒŒ ๋” ์œ ๋ฆฌํ•œ๊ฐ€?
  • ๋„Œ ํด๋Ÿฌ์Šค ์ธ๋ฑ์Šค(์ธ๋ฑ์Šค ์ž์ฒด์˜ ๋ฆฌํ”„ ํŽ˜์ด์ง€๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ„์น˜ํ•˜๋Š” ํฌ์ธํ„ฐ(RID)์ด๋ฏ€๋กœ ๊ฒ€์ƒ‰์€ ๋А๋ฆฌ์ง€๋งŒ ์ž…์ˆ˜์‚ญ์€ ๋น ๋ฅด๋‹ค.

์ธ๋ฑ์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

 

[DB] ์ธ๋ฑ์Šค๋ž€? - (2) ๊ตฌ์กฐ, B-Tree ๊ณ„์—ด์„ ์“ฐ๋Š” ์ด์œ 

๊ฑฐ์˜ ๋ชจ๋“  DBMS๋Š” ์ธ๋ฑ์Šค ์ข…๋ฅ˜์— ๋Œ€ํ•ด ํŠน๋ณ„ํ•œ ์–ธ๊ธ‰์ด ์—†๋‹ค๋ฉด B-Tree ๊ณ„์—ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋‹ค์ˆ˜์ด๋‹ค. ๋งŽ๊ณ  ๋งŽ์€ ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ์™œ ํ•˜ํ•„ B-Tree, B+-Tree๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค. ์ด ๊ธ€

siahn95.tistory.com

 

์™œ ์ธ๋ฑ์Šค๋Š” Tree ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ• ๊นŒ? Hash๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๋” ์ข‹์ง€ ์•Š์„๊นŒ?

  • Hash๋Š” (O(1)) Big-O ํ‘œ๊ธฐ๋ฒ•์ƒ ๊ฐ€์žฅ ๋น ๋ฅธ ํƒ์ƒ‰์˜ ํŠน์ง•์„ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.
  • ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๋ช…๋ฐฑํžˆ ๋‹จ์ผ ํ–‰ ์กฐํšŒ ์‹œ๋งŒ ํ•ด๋‹น - ๋ฒ”์œ„ ๊ฒ€์ƒ‰์€ ํ•ด๋‹น๋˜์ง€ ์•Š์Œ

B-Tree

  • ํ•˜๋‚˜์˜ ๋…ธ๋“œ์— ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ ๊ฐ€๋Šฅํ•œ ํŠธ๋ฆฌ

B-Tree๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  1. ํŠธ๋ฆฌ ๋‚ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ญ์ƒ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์—,

๋“ฑํ˜ธ(=) ์—ฐ์‚ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ถ€๋“ฑํ˜ธ(>, <) ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

  1. ํฌ์ธํ„ฐ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์ ์–ด ๋งค์šฐ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด๋„ ์†๋„ ์ด์Šˆ๊ฐ€ ์ ๋‹ค.
  2. ๋ฐ์ดํ„ฐ ํƒ์ƒ‰๋ฟ ์•„๋‹ˆ๋ผ, ์‚ฝ์ž… ๋ฐ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ์—๋„ ํ•ญ์ƒ O(log N)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.
๋ฐ˜์‘ํ˜•