B tree

์™œ DB index๋กœ B tree ๊ณ„์—ด์ด ์‚ฌ์šฉ๋˜๋Š”๊ฐ€?

B tree ๊ณ„์—ด์ด๋ž€?

  • B tree๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์žฅ๋œ ๋ฒ„์ „์˜ ์ž๋ฃŒ๊ตฌ์กฐ

  • B+ tree, B* tree

์‹œ๊ฐ„ ๋ณต์žก๋„

B tree์˜ ์‹œ๊ฐ„๋ณต์žก๋„

  • ์กฐํšŒ, ์‚ฝ์ž…, ์‚ญ์ œ์— ๋Œ€ํ•ด์„œ O(log)N

Binary Search Tree(BST)์™€ ๋น„๊ต

  • Binary Search Tree๋Š” ํŽธํ–ฅ๋˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ์ˆ˜๋„ ์žˆ์Œ

  • ์Šค์Šค๋กœ ๊ท ํ˜•์„ ๋งž์ถ”๋Š” self-balancing BST๊ฐ€ ์žˆ์Œ

    • ์˜ˆ) AVL tree, Red-Black tree

  • ์กฐํšŒ, ์‚ฝ์ž…, ์‚ญ์ œ์— ๋Œ€ํ•ด์„œ O(log)N

์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๊ฐ™์€๋ฐ, B tree๊ฐ€ ๊ณผ์—ฐ ๋” ์ข‹์€ ๊ฒƒ์ผ๊นŒ?

Secondary storage

์˜๋ฏธ

  • ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋จ(์ปดํ“จํ„ฐ๊ฐ€ ๊บผ์ ธ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„์žˆ์Œ)

  • ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ ์ผ๋ถ€๊ฐ€ ์ž„์‹œ ์ €์žฅ๋˜๊ธฐ๋„ ํ•จ(swap)

  • SSD, HDD ๊ฐ€ ์ด์— ํ•ด๋‹น๋จ

  • database๋Š” ์—ฌ๊ธฐ์— ์ €์žฅ๋จ

ํŠน์ง•

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์†๋„๊ฐ€ ๊ฐ€์žฅ ๋А๋ฆผ

    • SSD๋Š” RAM์— ๋น„ํ•ด 10๋ฐฐ ๋А๋ฆฌ๊ณ , HDD๋Š” 100๋ฐฐ ๋А๋ฆผ

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์šฉ๋Ÿ‰์ด ๊ฐ€์žฅ ํผ (๊ธˆ์•ก๋‹น ์šฉ๋Ÿ‰์ด ํผ)

  • block ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์”€

    • block : file system์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„. 2์˜ ์Šน์ˆ˜๋กœ ํ‘œํ˜„๋˜๋ฉฐ, 4KB, 8KB, 16KB ๋“ฑ์œผ๋กœ ๊ฐ€์ ธ์˜ด

    • ๋‹จ์  : ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ฝ์–ด์˜ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ

Secondary storage์— ์žˆ๋Š” DB์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์ ์ธ ๊ณ ๋ฏผ

  • DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ, secondary storage์— ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ ๋ฉด์—์„œ ์ข‹์Œ

  • block ๋‹จ์œ„๋กœ ์ฝ๊ณ  ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ์ €์žฅํ•˜๋ฉด ๋” ํšจ์œจ์ ์œผ๋กœ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Œ

B tree index์˜ ์žฅ์ 

  • ๋…ธ๋“œ๋งˆ๋‹ค ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๊ฐ–๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ์— scondary storage์— ์ ‘๊ทผํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๋” ์ ์Œ

    • ์ž๋…€ ๋…ธ๋“œ์ˆ˜๊ฐ€ ๋” ๋งŽ์•„์„œ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ขํ˜€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Œ (root์—์„œ leaf๋กœ ๊ฐ€๋Š” ํšŸ์ˆ˜๊ฐ€ ๋” ์ ์Œ)

  • ๊ฐ ๋…ธ๋“œ์˜ ๋ฌถ์Œ์ด block ๋‹จ์œ„๋กœ ๋ฌถ์—ฌ์žˆ์–ด์„œ scondary storage์—์„œ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ์œ ๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ (์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌถ์„ ๋ฟ ์•„๋‹ˆ๋ผ, ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•จ๊ป˜ ๋ถˆ๋ ค์งˆ ํ™•๋ฅ ์ด ๋” ์ ์Œ)

  • root๋…ธ๋“œ์—์„œ ์ ์€ ๋ ˆ๋ฒจ๋งŒ์œผ๋กœ๋„ ๋” ๋„“์€ ๋ฒ”์œ„์˜ ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ -> DB ์กฐํšŒ๋ฅผ ์œ„ํ•ด์„œ secondary storage์— ์ ‘๊ทผํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๋” ์ ์Œ

์ฐธ๊ณ 

์œ ํŠœ๋ธŒ : ์‰ฌ์šด์ฝ”๋“œ

Last updated