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

来源:互联网 发布:tmplate可以写js 编辑:程序博客网 时间:2024/05/29 15:18

是时候了解了解算法了:

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

0 0
原创粉丝点击