首页 > 学院 > 开发设计 > 正文

b-tree、b+-tree、2-3-4树个人总结

2019-11-06 06:22:14
字体:
来源:转载
供稿:网友

是时候了解了解算法了:

b-tree、b+-tree:

1.b-tree非叶子节点包含关键字信息,b+-tree不包含关键字信息,仅保存关键字范围,所以b+-tree的树高度可能相对更低,能减少磁盘io;

2.b+-tree所有的信息存在叶子节点中

3.m阶的b+-tree的孩子个数为ceil(2/m)-1<=n<=m,而b-tree个数上限为m-1,所以每个b+-tree的节点孩子数比b-tree多(待确认);

4.MySQL等存储系统使用带顺序指针的b+-tree,所以在顺序读取时,能够方便地读取到范围值,这样读取更快;

5.b-tree和b+-tree在插入、删除操作时,会自动分裂或合并,保持结构;

6.innodb二级索引存储的是键值而不是指针;

7.辅助索引使用主键作为"指针" 而不是使用地址值作为指针的好处是,减少了当出现行移动或者数据页分裂时辅助索引的维护工作,使用主键值当作指针会让辅助索引占用更多的空间,换来的好处是InnoDB在移动行时无须更新辅助索引中的这个"指针"

2-3-4树:

1.2-3-4树会自顶向下分裂;

参考:

http://blog.csdn.net/v_JULY_v/article/details/6105630

http://www.tuicool.com/articles/ZN7nu2

http://blog.jobbole.com/24006/

http://blog.csdn.net/v_july_v/article/details/6530142#comments

http://www.admin10000.com/document/5372.html


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表