当前位置:网站首页>B+树与B树的区别、Hash索引与B+树索引的区别
B+树与B树的区别、Hash索引与B+树索引的区别
2022-08-10 03:53:00 【小小张自由—>张有博】
目录
B+树和B树的区别
1、b树(balance tree),B+树是B树的改进版
2、B+树非叶子节点仅用于索引,不保存数据记录,跟记录有关的信息都放在叶子节点中。而 B 树中, 非叶子节点既保存索引,也保存数据记录。
3、由于B+树只有叶子节点存储数据,所有B+树能够记录更多的索引,这棵树更加“矮胖”,这样搜索效率更高,更稳定。
4、B+树所有数据都在叶子节点出现,叶子节点构成一个有序链表,而且叶子节点本身按照关键字的大小从小到大顺序链接(单向链表)。
5、对于范围查询来说,B+树只需要遍历叶子节点链表即可,而B树需要重复中序遍历去遍历数据。
6、B+树的随机查找、插入和删除过程基本与B树类似
B+树的结构

B树的结构
B+树索引与Hash索引的区别
1、Hash索引不能进行范围查询,而B+树可以。这是因为Hash索引指向的数据是无序的,而B+树的叶子节点是个有序的链表。
2、Hash索引不支持联合索引的最左侧原则(即联合索引的部分索引无法使用),而B+树可以。
对于联合索引来说,Hash索引在计算Hash值的时候是将索引键合并后再一起计算Hash值,所以不会针对每个索引单独计算Hash值。因此如果用到联合索引的一个或者几个索引时,联合索引无法被利用。
3、Hash索引不支持 ORDER BY 排序,因为Hash索引指向的数据是无序的,因此无法起到排序优化的作用,而B+树索引数据是有序的,可以起到对该字段ORDER BY 排序优化的作用。
同理,我们也无法用Hash索引进行模糊查询,而B+树使用LIKE进行模糊查询的时候,LIKE后面后模糊查询(比如%结尾)的话就可以起到优化作用。
4、InnoDB不支持哈希索引
如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦
边栏推荐
猜你喜欢
随机推荐
如何将 @Transactional 事务注解运用到炉火纯青?
golang go get 时提示 no Go files in xxx
leetcode 283:移动零
社区分享|货拉拉通过JumpServer纳管大规模云上资产
TCP协议之《数据与控制流程交叉时的延迟处理》
ZZULIOJ:1020: 两整数排序
原型和原型链
【mindspore产品】【8卡分布式训练】davinci_model : load task fail, return ret
ZZULIOJ:1017: 判断正整数位数
用.bat文件做Airtest脚本的多设备批量运行
TCP协议之《延迟ACCEPT》
【科研绘图】琴图 +箱型图混合 matplotlib库和seabsorn库的使用
X书6.97版本shield-unidbg调用方式
TCP协议之《发送缓存控制tcp_notsent_lowat》
【2022河南萌新联赛第(五)场:信息工程大学】【部分思路题解+代码解析】
域名DNS解析工具ping/nslookup/dig/host
125. 耍杂技的牛
The same is a primary test, why does he pay 5,000 yuan more than me?
ZZULIOJ:1030: 判断直角三角形
质量小议13 -- 侥幸









