当前位置:网站首页>BTree、B+Tree和HASH索引
BTree、B+Tree和HASH索引
2022-04-23 06:24:00 【0zien0】
hash索引的特点是检索效率非常高,检索一次就可以定位,BTree需要从根节点往下查找,经过多次IO访问才能找到结果,所以hash索引的效率远高于BTree。
但hash自身也有很多局限与缺陷:
1.hash只能通过索引精准定位目标,而不能进行范围查询。
2.因为hash只保存了经过hash计算之后的hash值和对应的行指针,所以无法用于排序。
3.hash索引如果遇到大量hash值相等的情况,那么大量的记录指针信息会存于同一个hash值上,这样要定位一条记录时就会很麻烦,最终效率不一定会比BTree索引高。
4.对于组合索引,hash索引会把组合索引合并一起后再计算hash值,而不是各自单独计算hash值,所以通过组合索引前面几个索引键值时,hash索引无法使用。
5.因为不同索引键有可能存在相同的hash值,所以hash索引任何时候都不能避免全表扫描。
BTree又叫平衡多路查找树。一棵m阶的B 树 (m叉树)的特性如下:
1.树中每个结点最多含有m个孩子(m>=2);
2.除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)]个孩子(其中ceil(x)是一个取上限的函数);
3.若根结点不是叶子结点,则至少有2个孩子(特殊情况:没有孩子的根结点,即根结点为叶子结点,整棵树只有一个根节点);
4.所有叶子结点都出现在同一层,叶子结点不包含任何关键字信息
5. 每个非终端节点包含n个关键字信息(P0,P1,…Pn, k1,…kn)
6. 关键字的个数n满足:ceil(m/2)-1 <= n <= m-1
7. ki(i=1,…n)为关键字,且关键字升序排序。
8. Pi(i=1,…n)为指向子树根节点的指针。P(i-1)指向的子树的所有节点关键字均小于ki,但都大于k(i-1)
B+Tree是在BTree基础上的一种优化。
1.非叶子节点只存储键值信息。这样可以大大加大每个节点存储的key值数量,降低B+Tree的高度。
2.所有叶子节点之间都有一个链指针。遍历起来更方便。
3.数据记录都存放在叶子节点中。
参考资料:
包含了二叉树、平衡二叉树、平衡多路查找树(BTree)
https://blog.csdn.net/hao65103940/article/details/89032538
版权声明
本文为[0zien0]所创,转载请带上原文链接,感谢
https://blog.csdn.net/a42626423/article/details/103636732
边栏推荐
猜你喜欢
How to improve the service efficiency of the hotel without blind spots and long endurance | public and Private Integrated walkie talkie?
Source Insight 4.0常见问题
安装配置淘宝镜像npm(cnpm)
Meishe helps Baidu "Duka editing" to make knowledge creation easier
菜菜的并发编程笔记 |(九)异步IO实现并发爬虫加速
Background management system framework, there is always what you want
数论分块(整除分块)
菜菜的并发编程笔记 |(五)线程安全问题以及Lock解决方案
How does the public and Private Integrated walkie talkie realize cooperative work under multi-mode communication?
Authorization+Token+JWT
随机推荐
[2020WC Day2]F.采蘑菇的克拉莉丝(子树和查询、轻重儿子思想)
数据库查询优化的方式
Statement of American photography technology suing Tianmu media for using volcanic engine infringement code
可视化常见问题解决方案(八)共享绘图区域问题解决方案
Mysql 数据库从设计上的优化
2022.3.14 阿里笔试
Object. Create() principle, object Create() specification, handwritten object create(),Object. Create() usage
数论之阶与原根讲解
公共依赖模块common的处理
Discussion on the outline of short video technology
h5本地存储数据sessionStorage、localStorage
青龙面板拉库命令更新【2022/4/20】收藏不走丢
记录一下使用v-print中遇到的问题
ESP32学习-向工程项目添加文件夹
可视化常见问题解决方案(九)背景颜色问题
基于可视化结构的身份证号码校验系统-树莓派实现
H5 case development
Discussion on frame construction and technology selection of short video platform
AuthorizationServer(授权服务器的简单搭建)
11.表和库的管理