CS ๊ณต๋ถ€

์ธ๋ฑ์Šค์˜ ๊ธฐ๋Šฅ (์žฅ์ , ์—ญํ• )

์€์ง„ 2021. 11. 1. 18:48

์ธ๋ฑ์Šค

  • ์ƒ‰์ธ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰์„ ๋” ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•/๊ธฐ์ˆ 
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ
    • ์ถ”๊ฐ€์ ์ธ ์“ฐ๊ธฐ ์ž‘์—…๊ณผ ์ €์žฅ ๊ณต๊ฐ„์„ ํ™œ์šฉ
    • ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ํฌํ•จํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑ
  • select๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ, ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ๋‹ค๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ˆœํšŒ์— ๋งŽ์€ ์ž์›๊ณผ ์‹œ๊ฐ„์ด ์†Œ๋ชจ

 

 

B+ Tree ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 

  • Root node : ๊ฒฝ๋กœ์˜ ์ถœ๋ฐœ์ ์ด ๋˜๋Š” ๋ฃจํŠธ ๋…ธ๋“œ
  • Non-leaf nodes : ๋ฆฌํ”„๋…ธ๋“œ๊นŒ์ง€์˜ ๊ฒฝ๋กœ ์—ญํ• ์„ ํ•˜๋Š” ๋…ผ๋ฆฌํ”„๋…ธ๋“œ
  • Leaf nodes : ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ๋ฆฌํ”„๋…ธ๋“œ

 

  • ๋ฆฌํ”„๋…ธ๋“œ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€์— ๋Œ€ํ•œ ์ž์‹ ๋…ธ๋“œ์— ํฌ์ธํ„ฐ๊ฐ€ ์ €์žฅ
  • B+ํŠธ๋ฆฌ์˜ ๊ฒ€์ƒ‰์€ ๋ฃจํŠธ๋…ธ๋“œ์—์„œ ์–ด๋–ค ๋ฆฌํ”„ ๋…ธ๋“œ์— ์ด๋ฅด๋Š” ํ•œ ๊ฐœ์˜ ๊ฒฝ๋กœ๋งŒ ๊ฒ€์ƒ‰, ํšจ์œจ์ 

 

 

 

์ธ๋ฑ์Šค์˜ ์žฅ๋‹จ์  

 

์žฅ์ 

  • ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰์†๋„ ํ–ฅ์ƒ
  • ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•˜๋Š” ์†๋„์™€ ๊ทธ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ์ „๋ฐ˜์ ์ธ ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ž์›๊ณผ ์‹œ๊ฐ„์„ ์•„๋‚„ ์ˆ˜ ์žˆ๋‹ค.

 

๋‹จ์ 

  • ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด DB์˜ ์•ฝ 10%์— ํ•ด๋‹นํ•˜๋Š” ์ €์žฅ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.
    • ์ž์›์„ ์†Œ๋ชจํ•˜์—ฌ ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌ
    • ๋ฌด๋ถ„๋ณ„ํ•œ ์ธ๋ฑ์Šค์˜ ์‚ฌ์šฉ์€ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ
  • ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.
  • ์ธ๋ฑ์Šค๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ์—ญํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CREATE, DELETE, UPDATE๊ฐ€ ๋นˆ๋ฒˆํ•œ ์†์„ฑ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ๊ฒŒ ๋˜๋ฉด ์ธ๋ฑ์Šค์˜ ํฌ๊ธฐ๊ฐ€ ๋น„๋Œ€ํ•ด์ ธ์„œ ์„ฑ๋Šฅ์ด ์˜คํžˆ๋ ค ์ €ํ•˜๋˜๋Š” ์—ญํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒ
    • ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค. ์ด๋กœ์ธํ•ด ๊ฒ€์ƒ‰๊ณผ ์กฐํšŒ์˜ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์ด ๋นˆ๋ฒˆ(์‚ฝ์ž…, ์ˆ˜์ • ์‚ญ์ œ)ํ•˜๋ฉด ์ธ๋ฑ์Šค ๋ฐ์ด๋ธ”์„ ๋ณ€๊ฒฝ๊ณผ ์ •๋ ฌ์— ๋“œ๋Š” ์˜ค๋ฒ„ํ—ค๋“œ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ์„ฑ๋Šฅ ์ €ํ•˜
      • UPDATE์™€ DELETE๋Š” ๊ธฐ์กด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  '์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ' ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ํ…Œ์ด๋ธ”์— UPDATE์™€ DELETE๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒ๋œ๋‹ค๋ฉด ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” 10๋งŒ๊ฑด์ด์ง€๋งŒ ์ธ๋ฑ์Šค๋Š” 100๋งŒ ๊ฑด์ด ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜์–ด, SQL๋ฌธ ์ฒ˜๋ฆฌ ์‹œ ๋น„๋Œ€ํ•ด์ง„ ์ธ๋ฑ์Šค์— ์˜ํ•ด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. 
    • INSERT : ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•จ
    • DELETE : ์‚ญ์ œํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•จ
    • UPDATE : ๊ธฐ์กด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ฐฑ์‹ ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•จ

 

 

 

์ธ๋ฑ์Šค ์‚ฌ์šฉ์ด ํšจ์œจ์ ์ธ ๊ฒฝ์šฐ

  • ๊ทœ๋ชจ๊ฐ€ ์ž‘์ง€ ์•Š์€ ํ…Œ์ด๋ธ” (select๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํšจ์œจ์ )
  • INSERT, UPDATE, DELETE๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ (๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ)
  • JOIN์ด๋‚˜ WHERE ๋˜๋Š” ORDER BY์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ
  • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต๋„๊ฐ€ ๋‚ฎ์€ ์ปฌ๋Ÿผ

 

 



์ถœ์ฒ˜: https://mangkyu.tistory.com/96 [MangKyu's Diary]