为什么采用B+ 树吗?这和Hash索引比较起来有什么优缺点吗?

        索引有哪些结构: Hash索引和B+ Tree索引

        因为Hash索引底层是哈希表,哈希表是一种以key-value存储数据的结构,所以多个数据在存储关系上是完全没有任何顺序关系的,所以,对于区间查询是无法直接通过索引查询的,就需要全表扫描。所以,哈希索引只适用于等值查询的场景。

        而B+ 树是一种多路平衡查询树,所以他的节点是天然有序的(左子节点小于父节点、父节点小于右子节点),所以对于范围查询的时候不需要做全表扫描

1、哈希索引适合等值查询,但是无法进行范围查询

2、哈希索引没办法利用索引完成排序

3、哈希索引不支持多列联合索引的最左匹配规则

4、如果有大量重复键值的情况下,哈希索引的效率会很低,因为存在哈希碰撞问题

上一篇:Binding的源与路径


下一篇:Java实现一致性hash算法