数据库索引 B-Tree索引 hash索引

B+Tree跟B-Tree相比

1,B+Tree索引的磁盘读写代价低

因为B+Tree索引非叶子节点不存数据信息,只存索引,这就意味着物理磁盘同一块的数据区域能读到更多的索引信息,更快找到所查索引的位置,减少IO操作。

2,B+Tree索引的查询效率更加稳定

因为最终查找的数据都在叶子结点,所以路径都是一样的,效率稳定

3,B+Tree更有利于对数据库的扫描

B+Tree索引的叶子结点之间都是链表链接起来的,所以范围查找特别方便

hash索引跟B+Tree相比

1,仅仅能满足 “=”,“IN”,不能使用范围查询,因为hash值是一对一的,数据相互之间没有联系

2,无法被用来避免数据的排序操作

3,不能利用部分索引键查询

4,不能避免表扫描,因为有些hash值可能相等,然后就要进行hash值相等的数据进行扫描

5,遇到大量hash值相等的情况后性能并不一定B-Tree索引高

BitMap 索引

不过很少支持,只有Oracle支持

猜你喜欢

转载自www.cnblogs.com/wangpengtao/p/10712232.html