B树简单理解
来源:互联网 发布:java中的多态是什么 编辑:程序博客网 时间:2024/05/18 02:13
平衡二叉排序树便于动态查找,因此用平衡二叉排序树来组织索引表是一种可行的选择。当用于大型数据库时,所有数据及索引都存储在外存,因此,涉及到内、外存之间频繁的数据交换,这种交换速度的快慢成为制约动态查找的瓶颈。若以二叉树的结点作为内、外存之间数据交换单位,则查找给定关键字时对磁盘平均进行㏒㏒次访问是不能容忍的(树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下)。
磁盘读取数据是以盘块(block)为基本单位的。位于同一盘块中的所有数据都能被一次性全部读取出来。而磁盘IO代价主要花费在查找时间Ts上。因此我们应该尽量将相关信息存放在同一盘块,同一磁道中。或者至少放在同一柱面或相邻柱面上,以求在读/写信息时尽量减少磁头来回移动的次数,避免过多的查找时间Ts。
所以,在大规模数据存储方面,大量数据存储在外存磁盘中,而在外存磁盘中读取/写入块(block)中某数据时,首先需要定位到磁盘中的某块,如何有效地查找磁盘中的数据,需要一种合理高效的外存数据结构,就是下面所要重点阐述的B-tree结构,以及相关的变种结构:B+-tree结构和B*-tree结构。
因此,必须选择一种能尽可能降低磁盘I/OI/O次数的索引组织方式。树结点的大小尽可能地接近页的大小。
1,B树的数据结构,根据以上的信息,定义B树的数据结构如下:
//节点数据结构的定义
typedef struct BTNode
{
int keynum; //节点信息的数量,不包含key[0]节点
struct BTNode *parent; //父节点
int key[M+1]; //节点信息数组,第一个节点没用。
struct BTNode *ptr[M+1];//子节点信息
}BTNode;
typedef struct BTNode
{
}BTNode;
2,B树的查找
3,B树的插入
阅读全文
0 0
- B树简单理解
- B树简单理解
- B树、B-树、B+树、B*树的简单理解
- 理解B树 B+树
- 理解B树,B+树
- B树的理解
- 理解B树索引
- 对于B树,B+树的理解
- B树和B+树的理解
- 红黑树,B树,B+树,B-树 理解
- 红黑树,B树,B+树,B-树 理解
- B树、B+树、B*树的理解
- 【笔记】B-树的理解
- C/S架构和B/S架构的简单理解
- B树、红黑树简单概念
- 对B+树索引的理解
- ORACLE B树索引概念的理解
- B树的理解和实现
- 【Scikit-Learn 中文文档】使用 scikit-learn 介绍机器学习 | ApacheCN
- 【Scikit-Learn 中文文档】内核岭回归
- 网络编程:网络基础
- lua math库
- 探究Python生成随机字符串
- B树简单理解
- 剑指offer 反转链表
- Android实现简易联网交互
- jndi
- Hivesql里的limit使用误区
- 关于Oracle检索字段值小数点前面0不显示问题
- android 自定义view绘制流程
- Nginx配置和启动
- 在macOS上使用Python+MySQL连接Tushare,进行股票数据下载