B樹查詢,磁碟查詢資料
【B~樹】
B~樹,又叫平衡多路查詢樹。一棵m階的B~樹 (m叉樹)的特性如下:
1) 樹中每個結點至多有m個孩子;
2) 除根結點和葉子結點外,其它每個結點至少有[m/2]個孩子;
3) 若根結點不是葉子結點,則至少有2個孩子;
4) 所有葉子結點都出現在同一層,葉子結點不包含任何關鍵字資訊(可以看做是外部接點或查詢失敗的接點,實際上這些結點不存在,指向這些結點的指標都為null);
5) 每個非終端結點中包含有n個關鍵字資訊: (n,A0,K1,A1,K2,A2,......,Kn,An)。其中,
a) Ki (i=1...n)為關鍵字,且關鍵字按順序排序Ki < K(i-1)。
b) Ai為指向子樹根的接點,且指標A(i-1)指向子樹種所有結點的關鍵字均小於Ki,但都大於K(i-1)。
c) 關鍵字的個數n必須滿足: [m/2]-1 <= n <= m-1
現在我們模擬查詢檔案29的過程:
(1) 根據根結點指標找到檔案目錄的根磁碟塊1,將其中的資訊匯入記憶體。【磁碟IO操作1次】
(2) 此時記憶體中有兩個檔名17,35和三個儲存其他磁碟頁面地址的資料。根據演算法我們發現17<29<35,因此我們找到指標p2。
(3) 根據p2指標,我們定位到磁碟塊3,並將其中的資訊匯入記憶體。【磁碟IO操作2次】
(4) 此時記憶體中有兩個檔名26,30和三個儲存其他磁碟頁面地址的資料。根據演算法我們發現26<29<30,因此我們找到指標p2。
(5) 根據p2指標,我們定位到磁碟塊8,並將其中的資訊匯入記憶體。【磁碟IO操作3次】
(6) 此時記憶體中有兩個檔名28,29。根據演算法我們查詢到檔案29,並定位了該檔案記憶體的磁碟地址。
相關文章
- 資料結構之查詢(順序、折半、分塊查詢,B樹、B+樹)資料結構
- B樹(多路查詢樹)
- 查詢|有序表折半查詢判定樹|二叉排序樹|3階B-樹排序
- 多路查詢樹:B-tree/b+tree
- MySQL - 資料查詢 - 簡單查詢MySql
- 資料庫 - 連線查詢、巢狀查詢、集合查詢資料庫巢狀
- 多路查詢樹
- 平衡查詢樹
- oracle 樹查詢Oracle
- 樹形查詢
- 資料庫資料的查詢----連線查詢資料庫
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- 資料庫高階查詢之子查詢資料庫
- 多路查詢樹(2-3 樹、2-3-4 樹、B 樹、B+ 樹)
- 淺談演算法和資料結構(10):平衡查詢樹之B樹演算法資料結構
- Java資料結構(十五)—— 多路查詢樹Java資料結構
- 資料庫基礎查詢--單表查詢資料庫
- elasticsearch查詢之大資料集分頁查詢Elasticsearch大資料
- 資料庫查詢優化:巢狀查詢資料庫優化巢狀
- 回閃查詢查詢刪除的資料
- oracle樹形查詢Oracle
- B樹(B-tree, 平衡的多路查詢樹)的相關知識
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- 二叉查詢樹的插入刪除查詢
- Hierarchical Queries 級聯查詢(樹狀結構查詢)
- 關聯查詢時使用樹狀查詢要小心
- indexedDB 查詢資料Index
- RESTFul資料查詢REST
- MySQL資料查詢MySql
- EF 查詢資料
- myGeneration——查詢資料
- 資料庫查詢資料庫
- MYSQL查詢資料MySql
- MySQL資料庫基礎——多表查詢:子查詢MySql資料庫
- 【資料結構】折半查詢(二分查詢)資料結構
- 資料庫 - 資料查詢資料庫
- 二叉查詢樹
- 查詢二叉樹二叉樹