一、B树

  B树是一种多叉平衡查找树,由于是多叉结构,对于元素数量非常多的情况下,树的深度不会像二叉结构那么大,可以保证查询效率。

二、B+树

  B+是是B树的一种变形,

  1、特点:

  (1)、所有叶子结点包含全部关键字信息,及指向含有这些关键字记录的指针,且叶子节点中关键字进行有序链接。

  (2)、非叶子结点相当于是叶子节点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层。

  2、B+树比B树更适合操作系统的文件索引和数据库索引:

  (1)B+树的磁盘读写代价更低,B+树的内部结点没有指向关键字具体信息的指针,因此内部结点相对B树更小。如果把所有同一内部结点的关键字放在同一块磁盘中,盘块所能容纳的关键字数量也就越多,一次性读入内存中的需要查找的关键字也就越多,相对IO读写次数降低。

  (2)B+树的查询效率更加稳定,由于非叶子结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每个数据的查询效率相当。

  此外B+树只要遍历叶子结点就可以实现整棵树的遍历,支持基于范围的查询。

三、B*树

  B*是是B+树的变体,在B+树的非根和非叶子结点在增加指向兄弟的指针;

  1、特点:

  当一个结点满时,如果它的下一个兄弟结点未满,那么将一部分数据移到兄弟结点中,将结点的最低利用率从1/2提高到2/3。

  

最新文章

  1. C# XML技术总结之XDocument 和XmlDocument
  2. ios基础篇(二十九)—— 多线程(Thread、Cocoa operations和GCD)
  3. js-DOM,DOM扩展
  4. hdu 1542 扫描线求矩形面积的并
  5. c++11 lambda递归调用写法
  6. Celery Flower监控,完美搞定
  7. Node.js小Httpserver
  8. LeetCode 75. Sort Colors(排序颜色)
  9. WSGI及gunicorn指北(二)
  10. 史上最简单的Docker入门教程
  11. 使用vagrant构建你们团队的开发环境
  12. ubuntu 学习
  13. 55.1拓展之边框border-width属性。
  14. JSz中的静态方法和实例方法的分析
  15. div中文本水平居中,垂直居中
  16. JavaScript编写风格指南 (一)
  17. Android ListView CheckBox状态错乱(转)
  18. Less与Sass框架
  19. apt-get强制使用Ipv4
  20. Python:装饰器的简单理解

热门文章

  1. 李宏毅机器学习笔记——新手感悟——PM2.5作业
  2. 什么是jQuery?
  3. 【C# IO 操作 】开篇 IO命名空间的解析
  4. 【C# 表达式树 三】ExpressionType 节点类型种类
  5. linux 下面启动nginx 和关闭nginx
  6. 60天shell脚本计划-10/12-渐入佳境
  7. POJ2723 题解
  8. Python:matplotlib.cm 色表
  9. omnet++:官方文档翻译总结(一)
  10. IIS部署vue项目页面刷新404,url重写问题解决办法