자료ꡬ쑰

[자료ꡬ쑰] B-Tree & B+Tree

quedevel 2023. 3. 27. 16:21
728x90
λ°˜μ‘ν˜•

🎯 B-Tree & B+Tree


B-Tree와 B+TreeλŠ” λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 자료ꡬ쑰둜, λ°μ΄ν„°λ² μ΄μŠ€λ‚˜ 파일 μ‹œμŠ€ν…œμ—μ„œ 주둜 μ‚¬μš©λ©λ‹ˆλ‹€.


B-Treeλž€?


μžμ‹ λ…Έλ“œμ˜ κ°œμˆ˜κ°€ μΌμ •ν•˜κ²Œ μœ μ§€λ˜λŠ” νŠΈλ¦¬μž…λ‹ˆλ‹€. 이진 탐색 트리의 μΌλ°˜ν™”λœ ν˜•νƒœλ‘œ, λ…Έλ“œλ‹Ή 킀값이 μ—¬λŸ¬κ°œ μ €μž₯λ©λ‹ˆλ‹€. B-TreeλŠ” 맀우 κ· ν˜•μž‘νžŒ 트리둜, 트리의 높이가 μž‘μ•„ 검색 μ‹œκ°„μ΄ λΉ λ¦…λ‹ˆλ‹€. B-TreeλŠ” 블둝 λ‹¨μœ„λ‘œ 데이터λ₯Ό μ €μž₯ν•˜λŠ”λ°, μ΄λŠ” λŒ€μš©λŸ‰ 데이터 μ²˜λ¦¬μ— μš©μ΄ν•©λ‹ˆλ‹€.


B+Treeλž€?


B-Tree의 λ³€ν˜•μœΌλ‘œ, λ‚΄λΆ€ λ…Έλ“œμ—λŠ” ν‚€κ°’λ§Œ μ €μž₯ν•˜κ³ , 리프 λ…Έλ“œμ—λ§Œ 데이터λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€. 이둜 인해 리프 λ…Έλ“œμ˜ κ°œμˆ˜κ°€ λ§Žμ•„μ§€λ©°, λŒ€μš©λŸ‰ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 λ”μš± νš¨κ³Όμ μž…λ‹ˆλ‹€. λ˜ν•œ, λ²”μœ„ 검색에 μš©μ΄ν•˜λ©°, 인덱슀λ₯Ό μ΄μš©ν•œ 검색에도 맀우 νš¨κ³Όμ μž…λ‹ˆλ‹€. B+TreeλŠ” λŒ€μš©λŸ‰ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ—μ„œ 인덱슀둜 많이 μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.


B-Tree & B+Tree 곡톡점


  1. λͺ¨λ“  리프 λ…Έλ“œκ°€ 같은 λ ˆλ²¨μ— μœ„μΉ˜ν•΄ μžˆμŠ΅λ‹ˆλ‹€.
  2. 트리의 κ· ν˜•μ„ μœ μ§€ν•©λ‹ˆλ‹€.
  3. ν‚€μ˜ μˆœμ„œμ— 따라 트리λ₯Ό κ΅¬μ„±ν•©λ‹ˆλ‹€.
  4. 데이터 μ ‘κ·Ό μ‹œκ°„μ΄ μƒμˆ˜ μ‹œκ°„μ— κ°€κΉμŠ΅λ‹ˆλ‹€.

B-Tree & B+Tree 차이점


  1. B-TreeλŠ” λ‚΄λΆ€ λ…Έλ“œμ™€ 리프 λ…Έλ“œμ— λͺ¨λ‘ 데이터λ₯Ό μ €μž₯ν•˜μ§€λ§Œ, B+TreeλŠ” λ‚΄λΆ€ λ…Έλ“œμ—λŠ” ν‚€κ°’λ§Œμ„ μ €μž₯ν•˜κ³  리프 λ…Έλ“œμ—λ§Œ 데이터λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.
  2. B-TreeλŠ” 킀값을 μ€‘λ³΅ν•΄μ„œ μ €μž₯ν•  수 μžˆμ§€λ§Œ, B+TreeλŠ” 킀값을 μ€‘λ³΅ν•΄μ„œ μ €μž₯ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

B-Tree & B+Tree μž₯단점


⭐️ B-Tree μž₯점

  1. ν‚€κ°’ 쀑볡을 ν—ˆμš©ν•˜κΈ° λ•Œλ¬Έμ—, λ°μ΄ν„°μ˜ μΆ”κ°€ 및 μ‚­μ œκ°€ μš©μ΄ν•©λ‹ˆλ‹€.
  2. 킀값을 μ •λ ¬ν•œ ν˜•νƒœλ‘œ 트리λ₯Ό κ΅¬μ„±ν•˜κΈ° λ•Œλ¬Έμ—, λ²”μœ„ 검색에 μœ μš©ν•©λ‹ˆλ‹€.
  3. λŒ€μš©λŸ‰ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 νš¨κ³Όμ μž…λ‹ˆλ‹€.

πŸ’€οΈ B-Tree 단점

  1. λ‚΄λΆ€ λ…Έλ“œμ™€ 리프 λ…Έλ“œ λͺ¨λ‘ 데이터λ₯Ό μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ—, μ €μž₯ κ³΅κ°„μ˜ λ‚­λΉ„κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. ν‚€κ°’μ˜ 쀑볡을 ν—ˆμš©ν•˜κΈ° λ•Œλ¬Έμ—, 검색 μ‹œκ°„μ΄ κΈΈμ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.


⭐️ B+Tree μž₯점

  1. λ‚΄λΆ€ λ…Έλ“œμ—λŠ” ν‚€κ°’λ§Œμ„ μ €μž₯ν•˜κ³ , 리프 λ…Έλ“œμ—λ§Œ 데이터λ₯Ό μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ—, μ €μž₯ κ³΅κ°„μ˜ λ‚­λΉ„λ₯Ό μ΅œμ†Œν™”ν•©λ‹ˆλ‹€.
  2. 리프 λ…Έλ“œλŠ” λͺ¨λ‘ μ—°κ²° 리슀트 ν˜•νƒœλ‘œ κ΅¬μ„±λ˜μ–΄ 있기 λ•Œλ¬Έμ— λ²”μœ„ 검색에 맀우 μš©μ΄ν•©λ‹ˆλ‹€.
  3. 인덱슀λ₯Ό μ΄μš©ν•œ 검색에 맀우 νš¨κ³Όμ μž…λ‹ˆλ‹€.

πŸ’€οΈ B+Tree 단점

  1. ν‚€κ°’ 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, λ°μ΄ν„°μ˜ μΆ”κ°€ 및 μ‚­μ œκ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€.
  2. 리프 λ…Έλ“œλ₯Ό μ œμ™Έν•œ λ‚΄λΆ€ λ…Έλ“œλŠ” 데이터λ₯Ό μ €μž₯ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, 검색 μ‹œκ°„μ΄ B-Tree보닀 κΈΈμ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ, B-TreeλŠ” λŒ€μš©λŸ‰ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 효과적이며, λ²”μœ„ 검색이 κ°€λŠ₯ν•˜μ§€λ§Œ μ €μž₯ κ³΅κ°„μ˜ λ‚­λΉ„κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. B+TreeλŠ” μ €μž₯ 곡간을 μ΅œμ†Œν™”ν•˜λ©°, λ²”μœ„ 검색 및 인덱슀λ₯Ό μ΄μš©ν•œ 검색에 νš¨κ³Όμ μ΄μ§€λ§Œ, λ°μ΄ν„°μ˜ μΆ”κ°€ 및 μ‚­μ œκ°€ μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. μ„ νƒν•˜λŠ” μžλ£Œκ΅¬μ‘°λŠ” λ°μ΄ν„°μ˜ νŠΉμ„±μ— 따라 달라지며, 특히 λŒ€μš©λŸ‰ 데이터 처리λ₯Ό μœ„ν•΄μ„œλŠ” 자료ꡬ쑰의 μž₯단점을 κ³ λ €ν•˜μ—¬ μ μ ˆν•œ 선택이 ν•„μš”ν•©λ‹ˆλ‹€.

728x90
λ°˜μ‘ν˜•