zoukankan      html  css  js  c++  java
  • 为什么 Mysql 用 B + 树做索引而不用 B 树或红黑树

      B-树、B+树、红黑树,都是平衡查找树,那么查询效率上讲,平均都是O(logn)

    为什么是B+ 树不用 B 树

      B + 树只有叶节点存放数据,其余节点用来索引,而 B -树是每个索引节点都会有 数据域。

      B树的内部节点都是存储实际数据的,增大了节点大小,增加了磁盘IO次数(磁盘IO一次读出的数据量大小是固定的,单个数据变大,每次读出的就少,IO次数增多,一次IO多耗时)

      B+树内部节点只作为导向作用,b+树的每个节点的孩子数更多,整个树的高度就更低,大大增加查询效率。

      B+树的叶子节点有链表相连,适合范围查询,相邻页直接读取。

    为什么 B+树 而不是红黑树

      AVL 树和红黑树基本都是存储在内存中才会使用的数据结构。

      在大规模数据存储的时候,红黑树往往出现由于树的深度过大而造成磁盘 IO 读写过于频繁,进而导致效率低下的情况。

      B+ 树的深度更小,IO较少,效率更高

  • 相关阅读:
    辞职信(转贴)
    去掉控件上显示聚焦框
    静态构造函数
    用Excel 公式求 金额的差额
    2020/2/6学习总结
    2020/2/3学习总结
    2020/2/7学习总结
    2020/1/31学习总结
    2020/2/5学习总结
    2020/2/4学习总结
  • 原文地址:https://www.cnblogs.com/Jomini/p/13894898.html
Copyright © 2011-2022 走看看