目錄
1.B樹
1.2 性質
- B樹的階m:孩子節點個數(叉)的最大值
- 1.分支數(子樹)
- 根節點最少可以有兩個分支[2,m]
- 非根非葉子的分支個數爲 [ ceil(m/2),m]
- 2.key數
- 節點上key數量是(分叉數-1)
- 葉最多m-1個
- 3.key有序,搜索樹
- 節點內有序,
- 節點間 大於左子,小於右子
1.3 圖示 最簡單3階B樹
1.4 操作
- 插入
- 不滿直接放入節點
- 滿了節點->分裂
- 父節點叉數大於m->向上生長
1.5 應用
- mongodb索引 所有節點都攜帶對應id對應數據行
2.B+樹
2.1 性質
- 所有數據均存儲在葉子節點,其餘節點僅存儲key值
- 節點間key關係不再是<、> 而是 <=、>=
- 葉子包含所有key,葉子成一個鏈
2.2 圖示
2.3 應用
- 用在磁盤文件組織數據索引和數據庫索引
- Mysql索引
- B+ 樹,只有葉節點才攜帶數據
爲了使內節點在一個頁內多存儲key,使得樹的m階更大,這樣樹高就更低,由於外部存儲每個節點需要磁盤尋址,每找到尋址一個節點就耗費