如果兩者都經過精心設計和編程。如果不需要范圍查詢,B -tree 與 Hash 相比,對于記憶體資料庫有什么優勢嗎?
uj5u.com熱心網友回復:
不僅范圍搜索,B 樹(或 B 之類的變體)還可以容納部分鍵搜索(即您知道前綴但不知道整個鍵值的地方)、排序遍歷,并且容易允許重復(哈希索引通常強制唯一性) .
哈希索引可能使用更少的記憶體(b 樹總是有空的空間)。
哈希表可以靜態分配(大小不變)或動態分配。如果您知道要以合理的準確度存盤多少鍵值,則靜態是最好的。除非/直到新存盤桶被填滿,否則動態分配的哈希表將浪費空間。B 樹根據需要自然生長。
如果哈希表太小或哈希演算法較差,就會出現需要鏈接的沖突。這將增加查找和插入時間。選擇最好的散列演算法在某種程度上依賴于被索引的資料型別,因此幾乎不可能有一個對所有事情都最優的通用散列演算法。B樹沒有這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/362832.html
上一篇:類圖的資料庫實作
