什么是B+树

B+树是一种优化的树数据结构,常用于数据库索引。它通过将数据分布在节点中,减少磁盘IO操作,提高查询速度。虽然索引能加快查询,但也可能影响写操作,需谨慎创建。B+树的叶子节点形成有序链表,便于区间查询。
摘要由CSDN通过智能技术生成

B+树是一种树数据结构。B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。

先来了解一下什么是索引?

一、索引

数据都是存储在硬盘上的,查询数据不可避免的需要进行IO操作。

索引是一种数据结构,又称之为“键(key)”,是存储引擎用于快速找到记录的一种数据结构。类似于书的目录,在查询数据的时候先找目录再找数据,而不是一页一页的翻。索引的存在提升来查询速度,降低来IO操作。

在一张表中可以有多个索引,但索引也不是越多越好。索引虽然可以帮助提升查询速度,但也是有缺点的:

1:当表中有大量数据存在的前提下,创建索引的速度会很慢

2:在索引创建完毕后,对表的查询性能会大幅度提升,但写的性能也会大幅度降低

因此索引不能随便的创建。

二、B+树

如图所示,这就是一个B+树,在非叶子结点上,存储的是一定范围内索引id对应的磁盘地址,叶子结点上存储的是具体的数据。

B+树之所以这么做的意义在于:树一个节点就是一个页,而数据库中页的大小是固定的,所以在页大小固定的前提下,能往一个页中放入更多的节点,相应的树的阶数(节点的子节点树)就会更大,那么树的高度就更矮,如此一来我们查找数据进行磁盘的IO次数有会再次减少,数据查询的效率也会更快。

B+树中各个页之间是通过双向链表连接的,叶子节点中的数据是通过单向链表连接的。

B+树叶子节点的关键字从小到大有序排列,左边节点的结尾数据都会保存右边节点的开始数据的指针,就构成了一个有序链表,在查询大小区间的数据时候更方便,速度更快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值