B樹在資料庫怎麼用

2021-10-19 13:40:43 字數 1453 閱讀 7768

首先,b樹不要和二叉樹混淆,在電腦科學中,b樹是一種自平衡樹資料結構,它維護有序資料並允許以對數時間進行搜尋,順序訪問,插入和刪除。

b樹是二叉搜尋樹的一般化,因為節點可以有兩個以上的子節點。[1]與其他自平衡二進位制搜尋樹不同,b樹非常適合讀取和寫入相對較大的資料塊(如光碟)的儲存系統。

它通常用於資料庫和檔案系統。

電腦儲存用磁碟來儲存,儲存規則如圖,用軌道和block來分割槽,使得將一塊磁碟分成不同的區。

當我們要在磁碟上找到乙個資料時,我們需要用位址來查詢,而這個位址就是【軌道+block】能夠找到指定分割槽。

找到資訊後,我們需要將磁碟上的資訊拷貝到ram上,因為我們不能在磁碟上進行資訊處理。

假設每個塊大小512byte。現在要儲存資料:一共五個字段,共128byte。(id:10bytes)一共有100條資料。

意味著每個block可以存4條記錄。需要25個block來存。

現在想一下,如果需要占用25個block。當我們訪問資料,搜尋資料的速度取決於你訪問的block數量。如果搜尋整個表,則需要搜尋25個block。

資料庫的索引就是為了減少訪問時間而設計的。

當我們建立索引,我們會在另乙個block建立一張表,表裡是(我們的【索引值】和指向磁碟的【指標】)。每個資料表的記錄都有乙個索引條目這就是緊張索引

假設索引值id:10bytes, 指標6bytes。那麼一條記錄16bytes。

那麼乙個block能存32個索引條目,那麼上面的100條資料就需要4個block來儲存索引。

假如資料庫的條目指數級倍增,那麼我們可以建立索引的索引,又叫做稀疏索引

現在假如我們有很多個稀疏索引,和很多個緊張索引

再將他們旋轉90°,就很像乙個樹狀結構了。

這就是b樹在資料庫中的應用。

每個節點最多有m個分支(子樹);而最少分支數要看是否為根節點,如果是根節點且不是葉子節點,則至少有2個分支,非根非葉節點至少有【m/2】個分支 。

有n(k≤n≤m)個分支的節點有n-1個關鍵字,它們按遞增排序。k=2(根節點)或【m/2】(非根節點)

節點互不重複。

葉節點處於同一層;可以用空指標表示,是查詢失敗到達的位置。

根節點:根節點就是最上面的節點,b樹的根節點可能不是乙個,

內部節點:內部節點是除葉子節點和根節點之外的所有節點,擁有父節點和子節點。

葉子節點:葉子節點對元素的數量有相同的限制,但是沒有子節點,也沒有指向子節點的指標。

階:就是每乙個節點表假如有四個元素,那麼它就有五個指標,階數為5。

b樹b 樹b 樹 資料庫之B 樹

資料庫索引就是使用b 樹和b 樹來實現的 為什麼要建立b 樹演算法?給出兩個常用的sql語句 根據某個值查詢資料 select from user where id 1234 根據區間值來查詢某些資料 select from user where id 1234and id 2345 考慮到效能方面...

資料庫原理知識 B 樹 B 樹 B 樹

b 樹 是一種多路搜尋樹 並不是二叉的 1.定義任意非葉子結點最多只有m個兒子 且m 2 2.根結點的兒子數為 2,m 3.除根結點以外的非葉子結點的兒子數為 m 2,m 4.每個結點存放至少m 2 1 取上整 和至多m 1個關鍵字 至少2個關鍵字 5.非葉子結點的關鍵字個數 指向兒子的指標個數 1...

資料庫設計原理 B樹 B 樹 B 樹

b樹即二叉搜尋樹 1.所有非葉子結點至多擁有兩個兒子 left和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點關鍵字小,就進入左兒...