0
我在使用BTREE索引或HASH索引之間進行辯論。推理散列索引優勢/他們應該何時應用於BTREE索引?
從理論上講,使用HASH索引有什麼好處?
什麼時候應該選擇它們,更重要的是爲什麼?
我已經讀過,散列索引對點查詢很好,但是爲什麼?
我已經知道BTREE索引最適合範圍查詢,因爲您可以通過從左到右輕鬆遍歷葉節點。
我在使用BTREE索引或HASH索引之間進行辯論。推理散列索引優勢/他們應該何時應用於BTREE索引?
從理論上講,使用HASH索引有什麼好處?
什麼時候應該選擇它們,更重要的是爲什麼?
我已經讀過,散列索引對點查詢很好,但是爲什麼?
我已經知道BTREE索引最適合範圍查詢,因爲您可以通過從左到右輕鬆遍歷葉節點。
你沒有提到特定的DBMS,所以這個答案很通用。
一個正確執行的散列索引應該在單個提取中達到點查詢的答案。 B樹將使用類似lg_B(n)的輔助存儲訪問,其中B是近似分支因子,n是條目數。緩存和合理的節點大小可能會將其保持爲幾次提取,但仍然是散列索引的兩倍。另外,爲了遍歷每個節點中的子索引(如每個節點的lg_2(B)數據比較操作),每個B樹訪問都有與其相關的非平凡計算。哈希索引的計算時間通常非常有限(哈希計算和少量數據比較操作 - 希望是一個)。在基於B樹的索引中,在每個節點內搜索的計算時間通常是重要的。
在採摘方面,使用哈希索引如果
如果您有任何種類的範圍查詢和/或想要預定義的列的排序結果,B-Tree系列更好。