資料庫 3 3 優化你的索引 運用B樹

2021-09-28 17:09:54 字數 665 閱讀 3732

b樹的示意圖如下:

b樹,又叫平衡多路查詢樹。如果每個節點最多有m個孩子,那麼這樣的樹就是m階樹,咱們可以看到,該圖就是3階b樹的樣子。當然現實中咱們索引每個節點的孩子數上限肯定是遠大於3的。每個儲存塊中,主要包含了關鍵字和指向孩子的指標,那麼最多能有幾個孩子,取決於每個儲存塊的容量以及資料庫的相關配置。所以,通常情況下,這個m是很大的。

接下來看看b-tree的特徵:

1,根節點至少包括兩個孩子。

2,樹中每個節點最多含有m個孩子(m>=2)

這個就是咱們說的m階樹的含義了,m取決於節點的容量,以及相關配置。

3,除根節點和葉節點外,其他每個節點至少有ceil(m/2)個孩子。

ceil函式表示取上限,比如這裡的m為3,3除以2就是1.5,取上限就是2。

4,所有葉子節點都位於同一層,即葉子節點的高度都是一樣的。

5,假設每個非終端結點含有n個關鍵字資訊,其中

a)ki(i=1…n)為關鍵字,且關鍵字按順序公升序排列k(i-1) b樹的查詢效率是o(logn)。

當資料發生變動的時候,必然會存在現有結構被打亂的情況,那我們的這個二叉查詢樹就有可能被打亂成線性的,當由於我們的b樹會有這5個規定存在,所以b樹就會有相應的策略,通過合併,**,上移,下移節點,來保持它的特徵。此樹遠比我們的二叉樹矮的多,並且不會經過資料不斷變動之後變成線性的這種情況。

3 4 優化你的索引 運用b 樹

定義呢,基本與b樹相同,除了 非葉子節點的子樹,關鍵字的個數與指標是相同的。對比,比b樹存的資料更多 b 樹 1.1 關鍵字的個數與指標是相同的。1.2 葉子節點才 儲存實際資料。每次資料查詢都是從根到葉子,查詢時間複雜度很穩定,都是二分查詢o logn n是資料總數。1.3 非葉子節點 存索引資料...

資料庫索引 B樹索引

b樹索引能自動的保持和資料檔案大小相適應的索引層次。通過對所使用的儲存塊空間進行管理,使每個塊的充滿程度在半滿和全滿之間。這樣的索引不再需要溢位塊。b 樹的資料結構 通常b樹有三層 跟 中間層和葉。葉子節點是乙個塊,它儲存了n個 鍵值,資料記錄指標 對,外加乙個指向下乙個兄弟葉子節點的指標。葉子節點...

資料庫索引 B 樹

目錄特點 例項 查詢 插入 刪除 總結b 樹是b樹的變種,查詢效率比b更高。為什麼更高?往下看。參考 1.有k個子樹的中間節點包含有k個元素 b樹中是k 1個元素 每個元素不儲存資料,只用來索引,所有資料 都儲存在葉子節點。2.所有的葉子結點中包含了全部元素的資訊,及指向含這些元素記錄的指標,且葉子...