MySQL数据库为什么 B+ 树比 B 树更适合应用于数据库索引?
MySQL数据库为什么 B+ 树比 B 树更适合应用于数据库索引?
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
6条回答
默认
最新
B树允许在根节点、内部节点和叶节点当中的任意层上储存值;而B+树则仅在叶节点中存储值,其内部节点仅存储分隔键,用于指引搜索算法去找到叶节点上的关联值。
由于B+树中的值仅存储在叶节点这一层上,所以所有操作(插入、更新、删除和检索数据记录)仅影响叶节点,并且这些操作仅在分裂和合并期间才会传播到更高层。
B+树广为人知,因此有些文献将之称为B树。例如,MySQL InnoDB将其B+树的实现称为B树。
评论
有用 2
MySQL数据库为什么 B+ 树比 B 树更适合应用于数据库索引?
评论
有用 0
评论
有用 0B+树更适合外部存储。由于内结点不存放真正的数据(只是存放其子树的最大或最小的关键字,作为索引),一个结点可以存储更多的关键字,每个结点能索引的范围更大更精确,也意味着B+树单次磁盘IO的信息量大于B树,I/O的次数相对减少。
MySQL是一种关系型数据库,区间访问是常见的一种情况,B+树叶结点增加的链指针,加强了区间访问性,可使用在区间查询的场景;而使用B树则无法进行区间查找。
评论
有用 2mysql的B+树一方面树的节点只存储索引键值,不存数据,同样深度的树比B树存的数据更多。另一方面B+树的叶子节点之间使用双向链表,在范围扫描时更有优势。
评论
有用 2回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏


