B-Tree用于磁盘存储

IUn*_*own 6 algorithm data-structures

为什么B-Tree是磁盘存储的首选结构.
什么样的质量使它比二叉树更适合二级存储.
具体的"质量"是否是算法本身的一个特征;或者它的实现方式?
任何参考或指针将非常感激.

Pio*_*ski 7

磁盘寻求是昂贵的.B树结构专门设计用于尽可能避免磁盘搜索.因此,B-Tree将更多的键/指针打包到单个节点而不是二叉树.这个属性使树非常平坦.通常,大多数B树只有3或4级深度,并且根节点可以很容易地被缓存.这只需要2-3次寻找在树中找到任何东西.叶子也以这种方式"打包",因此迭代树(例如全扫描或范围扫描)非常有效,因为您每个块(搜索)读取数百/数千个数据行.

在具有相同容量的二叉树中,您将拥有几十个级别,并且顺序访问每个值将需要至少一次搜索.

  • b-tree有一个很好的参考,它很好地说明了B树的这个特性(编程语言并不重要) (3认同)