数据结构---B+Tree

简介: 数据结构---B+Tree


B+Tree

在我没了解B+Tree之前,听别人提到这个词时,脑子一片空白,懵懵的,今天利用空闲时间,简单了解了一下B+Tree,下面来简单认识一下B+Tree吧!

简单了解一下B+Tree

B+Tree:是为磁盘等外存储设备设计的一种平衡查找树。

他的存储特点有哪些呢?

存储特点

子叶节点存储Data(data元素地址指针位置等),非叶子节点存储索引

叶子节点用指针连接,提高区间访问性能

根据下面这幅图我简单介绍一下

Mysql给每个叶子节点设置大小为16K;

以数值15为例,一般ID都会使用bigint类型,大概会分配8Bigint字节,(数值15旁边的空格为)磁盘地址指针大概会分配6Bitint字节;

以两千万数据为例,高度为3的B+tree数据结构;

叶子节点大概可以存放1170个元素;

非叶子节点可以存放16个元素;

IO读写操作只需要2-3次,即可查询到要查询的数据。

折半查找

看下图:

非叶子结点会提前直接加载到内存中,例如要查找20的索引,前面定位两次非叶子节点都是在内存中查找,不需要和磁盘进行IO操作,进行折半查找,只需要叶子节点进行一次的IO操作,把磁盘数据加载到内存。

MySQL表数据文件

test_myisam.frm FRM文件 存储的表结构文件

test_myisam.MYD MYD文件 存储引擎

test_myisam.NYI NYI文件 数据文件索引文件

MyISAM存储引擎和InnoDB存储引擎的区别?

主要是在叶子节点。

MyISAM存储引擎

叶子节点存储的是地址指针的位置

非聚集索引(索引和数据没有放在一个文件里,索引和数据没有聚集在一个文件)

InnoDB存储引擎

叶子节点存储的是地址指针位置对应的节点值

聚集索引(索引和数据放在一个文件里,索引和数据聚集放在一个文件)

目录
相关文章
|
存储 算法 数据库
Python高级数据结构——树(Tree)
Python高级数据结构——树(Tree)
529 1
|
存储 算法 Linux
打破常规,Linux内核新的数据结构上场maple tree(下)
打破常规,Linux内核新的数据结构上场maple tree
|
存储 分布式数据库 C语言
【初阶数据结构】树(tree)的基本概念——C语言
【初阶数据结构】树(tree)的基本概念——C语言
|
存储
数据结构之二叉查找树(Binary Search Tree)和红黑树(Red Black Tree)
二叉查找树又可以称之为 : 二叉搜索树 , 二叉排序树 , 它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势 , 下图中这棵树,就是一棵典型的二叉查找树
167 1
|
7月前
|
存储 算法 Python
Python数据结构新视角:Trie树与Suffix Tree的相爱相杀,你站哪边?
【7月更文挑战第20天】在编程领域,Trie树(前缀树)与Suffix Tree(后缀树)犹如双星,各有专长。Trie树高效检索字符串集合,擅长前缀匹配,适用于自动补全和拼写检查;Suffix Tree则管理字符串所有后缀,加速子串查询,解最长公共前缀和重复子串难题。两者在不同场景发光发热,Trie树于快速响应的自动完成胜出,Suffix Tree则在基因序列分析和文本模式识别中独领风骚。抉择之间,应用场景与需求成关键,恰如剑客选剑,唯理解本质方能制胜。
61 1
|
7月前
|
存储 数据处理 开发者
告别繁琐查找!Python高级数据结构Trie树与Suffix Tree,让数据处理更轻松!
【7月更文挑战第19天】Python的Trie树优化字符串搜索,利用前缀减少无效操作,提升效率;Suffix Tree则高效处理后缀问题,尤其适用于文本搜索与生物信息学。虽构建复杂,但能加速后缀查询。掌握这两种数据结构,能有效应对大规模数据挑战,简化处理流程,提升开发效率。
137 0
|
8月前
|
存储 算法 测试技术
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
91 1
|
8月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
65 1
|
9月前
|
算法 索引 Python
Python高级数据结构——线段树(Segment Tree)
Python高级数据结构——线段树(Segment Tree)
316 2
|
存储 Linux 编译器
打破常规,Linux内核新的数据结构上场maple tree(上)
打破常规,Linux内核新的数据结构上场maple tree

热门文章

最新文章