# B+Tree
B+Tree vs Sequential index
B+Tree | Sequential index | |
์ฅ์ | 1. ์ฝ์
,์ญ์ ๊ณผ์ ์์ ์์์ ์ฌ๊ตฌ์ฑ์ด ์ผ์ด๋๋ค. 2. ์ฑ๋ฅ ์ ์ง๋ฅผ ์ํ ์ ์ฒด ํ์ผ ์ฌ๊ตฌ์ฑ์ด ํ์ํ์ง ์๋ค. |
1. ์ฝ๋ค ใ |
๋จ์ | ์ฝ์ ,์ญ์ ๊ณผ์ ์ด ์ข ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ , ํธ๋ฆฌ๋ฅผ ์ ์ฅํ ์ถ๊ฐ ๊ณต๊ฐ์ด ํ์ํ๋ค. | 1. Overflow Block๋๋ฌธ์ ํ์ผ์ด ์ปค์ง์๋ก ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค 2. ์ฃผ๊ธฐ์ ์ผ๋ก ์ฌ์ ๋น๊ฐ ์๊ตฌ๋๋ค. |
B+Tree ํน์ง
- B+tree์์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ฆฌํ ๋ ธ๋์ ๋ค์ด์๊ฑฐ๋, ๊ทธ ์ฃผ์๊ฐ ์ ์ฅ๋์ด ์๋ค. ๋ฐ๋ผ์ ๋ฆฌํ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ ธ๋๋ฅผ "์ธ๋ฑ์ค ๋ ธ๋"๋ผ ๋ถ๋ฅด๊ณ , ๋ฆฌํ ๋ ธ๋๋ฅผ "๋ฐ์ดํฐ ๋ ธ๋"๋ผ ๋ถ๋ฅธ๋ค.
- ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ , ์์๋๋ก ์ ๋ ฌ๋์ด ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ๊ฐ์ ๋ ๋ฒจ์ ์๋ค.
- ๋ ธ๋๋ง๋ค ๊ฐ์ง ์ ์๋ ํฌ์ธํฐ์ ๊ฐ์๋ฅผ Fanout์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ ์ฌ๊ธฐ์๋ Fanout์ n์ด๋ผ๊ณ ์น๊ฒ ๋ค.
- ๋ชจ๋ ๋
ธ๋๋ ⌈(n–1)/2⌉ ~ n-1๊ฐ ๊น์ง์ key๊ฐ์ ๊ฐ์ง ์ ์๋ค. ํฌ์ธํฐ์ ๊ฐ์๋ ⌈n/2⌉ ~ n๊ฐ๊น์ง ๊ฐ์ง ์ ์๋ค.
- Root ๋ ธ๋๋ ๋ฆฌํ ๋ ธ๋์ผ ๋๋ 0๋ถํฐ n-1๊ฐ์ ํค๊ฐ์ ๊ฐ์ง ์ ์๊ณ , ๋ฆฌํ ๋ ธ๋๊ฐ ์๋ ๋๋ ์ต์ 2๊ฐ ์ด์์ ํค๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
- ๋ชจ๋ ๋ ธ๋๋ ํฌ์ธํฐ๋ก ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ฐ๊น์ด ์์ง ์์๋ ๋๋ค.
- ๊ฒ์ํ ๋ ๋งค์ฐ ํจ์จ์ ์ด๋ค.( ⌈log⌈n/2⌉(K)⌉)
Non-leaf Node in B+Tree
- P1 ํฌ์ธํฐ๊ฐ ๊ฐ๋ฅดํค๊ณ ์๋ ๋ ธ๋์ ๋ชจ๋ ํค๊ฐ์ K1๋ณด๋ค๋ ์๊ณ , Pn์ด ๊ฐ๋ฅดํค๋ ๋ ธ๋์ ํค๊ฐ๋ค์ k(n-1)๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค.
- Pi๊ฐ ๊ฐ๋ฅดํค๊ณ ์๋ ๋ ธ๋์ ํค ๊ฐ๋ค์ K(i-1)๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ Ki๋ณด๋ค๋ ์๋ค.
'๐ฅ๏ธSW Engineer > Distributed System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ADV_db]Chap 3. Indexing - B+Tree ์ถ๊ฐ๋ด์ฉ๋ค (0) | 2023.04.19 |
---|---|
[ADV_db]Chap 3. Indexing - B+tree ๊ฒ์,์ฝ์ ,์ญ์ (0) | 2023.04.17 |
[ADV_db]Chap 3. Indexing (1) | 2023.04.14 |
[ADV_db]Chap 2. ๋ฐ์ดํฐ ์ ์ฅ ์ฅ์น ๊ตฌ์กฐ-2 (0) | 2023.04.05 |
[ADV_db]Chap 2. ๋ฐ์ดํฐ ์ ์ฅ ์ฅ์น ๊ตฌ์กฐ (0) | 2023.04.05 |