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较少,效率更高

  • 相关阅读:
    linux安装JRE和Tomcat
    微信公众号授权登录
    linux Nginx设置多级域名
    bootstrap制作收藏夹导航
    js下拉菜单
    QQ授权登录
    centos7.6下安装LNMP环境(linux+nginx+mysql5.7+PHP)
    typora快捷键(转载)
    旋转魔方(2)-添加照片
    test
  • 原文地址:https://www.cnblogs.com/Jomini/p/13894898.html
Copyright © 2011-2022 走看看