1.B+樹是應文件系統產生的B樹的變種。它依然是一顆多路查找樹,與B樹相比它的不一樣體如今:數據庫
(1).若是非葉子節點包含n個關鍵碼,則這個節點有n個子樹。性能
(2).非葉子節點僅包含關鍵碼信息,葉子節點包含關鍵碼以及含有這個關鍵碼的記錄的指針。因此查找時,B+樹必須到達葉子節點纔會命中。spa
(3).葉子節點包含有兄弟葉子節點的指針,並且葉子節點的關鍵碼值是有序的,有利於遍歷。操作系統
(4).全部的非葉子節點可當作是索引部分(稀疏索引)指針
2.爲何說B+樹比B樹更適合實際應用中做爲操做系統的文件索引和數據庫索引?索引
(1)B+樹的磁盤讀寫代價更低內存
非葉子節點包含的信息更少,若是把同一節點的全部信息放在一個磁盤塊中,則能夠比B樹放入更多的關鍵碼。一次讀入內存當中(讀一個塊)就能讀入更多的關鍵碼,因此下降了磁盤I/O總數。效率
(2)查詢效率更加穩定遍歷
對任何關鍵字的查找都必須從根節點走到葉子節點,路徑長度相同,因此對每條數據的查詢效率至關。數據
(3)B樹在提升磁盤I/O性能的同時並無解決元素遍歷效率低下的問題。而B+樹由於葉子節點有鏈指針存在,因此遍歷葉子節點便可以實現對整棵樹的遍歷。而在數據庫中基於範圍的查詢是很是頻繁的,B+樹就能更好的支持。