b樹索引能自動的保持和資料檔案大小相適應的索引層次。通過對所使用的儲存塊空間進行管理,使每個塊的充滿程度在半滿和全滿之間。這樣的索引不再需要溢位塊。
b(+)樹的資料結構:
通常b樹有三層:跟、中間層和葉。
葉子節點是乙個塊,它儲存了n個[鍵值,資料記錄指標]對,外加乙個指向下乙個兄弟葉子節點的指標。葉子節點中的鍵值是稠密的。
中間層節點是乙個塊,它儲存了m個[鍵值,指向自己子節點]對。中間層節點中的鍵值是稀疏的。
根節點是乙個塊,儲存了i個鍵值,指向中間層節點]對。根節點中的鍵值是稀疏的。
b樹的查詢效率分析:
乙個塊中可以儲存很多個[鍵值,指標]對,因此,三層的b樹可以支援千萬記錄級別的資料表。
在這樣的樹中,精確查詢乙個資料記錄指標只需要兩次i/o。
樹的葉子節點之間實際上組成了乙個單向鍊錶。通過掃瞄鍊錶,可以實現範圍查詢。
b樹的更新效率分析:
通過增加/刪除葉子節點及其相互的引用指標,單向鍊錶的資料結構高效的支援資料的插入和刪除。當然,必要的時候需要更新中間節點。
資料庫索引 B 樹
目錄特點 例項 查詢 插入 刪除 總結b 樹是b樹的變種,查詢效率比b更高。為什麼更高?往下看。參考 1.有k個子樹的中間節點包含有k個元素 b樹中是k 1個元素 每個元素不儲存資料,只用來索引,所有資料 都儲存在葉子節點。2.所有的葉子結點中包含了全部元素的資訊,及指向含這些元素記錄的指標,且葉子...
資料庫索引(B樹,B 樹,雜湊)
一.什麼是索引?索引的目的就是便於快速查詢。一本書的索引就是目錄,可以讓我們快速定位到要查詢的內容 資料庫的資料是以記錄的方式存在的,所以索引的目的就是便於查詢某一些記錄。索引型別 常見的資料庫書籍中的關於索引類別的一些稱呼 唯一索引 不允許其中任何兩行具有相同值的索引 使用主鍵和候選鍵建立的索引就...
資料庫索引(B樹,B 樹,雜湊)
資料庫索引是儲存引擎用於快速找到記錄的一種資料結構。高效能mysql 一.什麼是索引?索引的目的就是便於快速查詢。一本書的索引就是目錄,可以讓我們快速定位到要查詢的內容 資料庫的資料是以記錄的方式存在的,所以索引的目的就是便於查詢某一些記錄。索引型別 常見的資料庫書籍中的關於索引類別的一些稱呼 唯一...