是时候了解了解算法了:
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
新闻热点
疑难解答