温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Mysql 为什么要选择 B+Tree

发布时间:2020-06-13 05:09:29 来源:网络 阅读:327 作者:kukelook 栏目:编程语言

Mysql 为什么要选择 B+Tree算法对比

二叉树

Mysql 为什么要选择 B+Tree
当我查找 8 的时候需要走五步

Mysql 为什么要选择 B+Tree
红黑树

Mysql 为什么要选择 B+Tree
当我查询8的时候需要四次 相对于二叉树有了一些优化 没有无限延伸.红黑树的深度会很深(深度不可控制)

Mysql 为什么要选择 B+Tree
hash

数据量大的话

Mysql 为什么要选择 B+Tree
查询很快(不能范围查找)

BTree

Mysql 为什么要选择 B+Tree
查询只需要查两步就可以找到,缺点携带(data)扩大横向减少纵向深度

ps:java拿取数据一般是这样的:java程序-->CPU--->内存---->硬盘,而内存与硬盘的交互是有大小限制的,是一页数据4k左右,所以不能把所有数据都放在一个节点来获取,一般来说节点会尽量预存4K容量。
Mysql 为什么要选择 B+Tree
B+Tree

Mysql 为什么要选择 B+Tree
Mysql 为什么要选择 B+Tree

ps:data不放在非叶子节点来增加度(小节点),一般会一百个以上使得深度是3~5,从而减少查询次数。并且,叶子节点之间会有指针,数据又是递增的,这使得我们范围查找可以通过指针连接查找,而不再从上面节点往下一个个找。既减少了查询次数,又提供了范围查询.

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI