B樹、B+樹與B*樹簡介
阿新 • • 發佈:2018-12-25
轉自:http://www.tuicool.com/articles/fYz6jy
本文主要介紹各種B樹,不對插入、刪除做過多的深入瞭解。
1. 引子
動態查詢樹主要有:
二叉查詢樹(Binary Search Tree) 平衡二叉查詢樹(Balanced Binary Search Tree) B-tree B+-tree B*-tree 前三者是典型的二叉查詢樹結構,其查詢的 時間複雜度O(log2N)與樹的深度相關,那麼降低樹的深度自然會提高查詢效率 。 但是我們要面對這樣一個實際問題,大規模資料儲存中,實現索引查詢是在這樣一個實際背景下的,即樹節點儲存的元素數量是有限的(如果元素數量非常多的話,查詢就退化成節點內部的線性查找了),這樣 導致二叉查詢樹結構由於樹的深度過大而造成磁碟I/O讀寫過於頻繁,進而導致查詢效率低下,那麼如何減少樹的深度,一個基本的想法就是:採用多叉樹結構。2.外儲存器—磁碟
計算機儲存裝置一般分為兩種:記憶體儲器(main memory)和外儲存器(external memory)。 記憶體存取速度快,但容量小,價格昂貴,而且不能長期儲存資料(在不通電情況下資料會消失)。 外儲存器,一般指磁碟,是一種直接存取的儲存裝置,容量大、資料可以持久儲存。2.1 磁碟的構造
當磁碟驅動器執行讀/寫功能時。碟片裝在一個主軸上,並繞主軸高速旋轉,當磁軌在讀/寫頭(又叫磁頭) 下通過時,就可以進行資料的讀 / 寫了。 一般磁碟分為固定頭盤(磁頭固定)和活動頭盤。 固定頭盤的每一個磁軌上都有獨立的磁頭,它是固定不動的,專門負責這一磁軌上資料的讀/寫。 活動頭盤 (如上圖)的磁頭是可移動的。每一個盤面上只有一個磁頭(磁頭是雙向的,因此正反盤面都能讀寫)。它可以從該面的一個磁軌移動到另一個磁軌。 所有磁頭都裝在同一個動臂上,因此不同盤面上的所有磁頭都是同時移動的(行動整齊劃一)。當碟片繞主軸旋轉的時候,磁頭與旋轉的碟片形成一個圓柱體。各個盤面上半徑相同的磁軌組成了一個圓柱面,我們稱為柱面 。因此,柱面的個數也就是盤面上的磁軌數。