二叉树->B-tree->b+tree->b+tree改良

二叉树->B-tree->b+tree->b+tree改良
二叉树->b-树,解决的是读索引的IO次数问题

在真实的数据库中
往往索引本身的数据量也是非常庞大的
树的查找,其实是每一层需要做一次判断
因为索引很大,只能存在文件里,不能一次加载,所以没判断一层,都需要有一次磁盘IO,所以查找IO次数最坏的情况
就是树的高度-1,加入你要的节点在最后一层的话
二叉树,是只有两个子节点的
一单数据量一大的话
树高会很恐怖
B-Tree,的度是没有限制的
可以打打减少这个数的高度,从而减少磁盘读的次数


b-tree -> b+tree :这个是针对IO的再次优化
b+tree,的父节点是不存数据的
 数据库索引,其实一个节点刚好占的是硬盘的一页空间
 由于索引节点不存数据
 一个硬盘页,也就是一个节点的度就可以更大
 可以最大程度减少树的高度
 之所以一个节点刚好占一页,也是IO的问题,一次硬盘IO只能读一页
 这是结构上的改进
 效果就是一个节点一次IO的度更大了
 他这个意思就是说,如果有索引,一次索引查找,基本不会超过2次硬盘IO
 这还只是b-tree
 b-tree这玩意儿就读B树
 很多人读B减数是误读
























你可能感兴趣的:(二叉树->B-tree->b+tree->b+tree改良)