zoukankan      html  css  js  c++  java
  • B树,B+树,二叉树

    二叉树

    BST树,AVL树,红黑树统称为二叉树。

    BST树:

    当数据插入是一个链表的时候,会发现数据的呈现形式是一个链式结构,很明显不符合我们使用的情况

     AVL树:

    通过浪费插入性能带来读取性能的提升,左字树与右字树最大不能超过1。

     红黑树:

    最长子树,只要不超过最短子树的2倍即可,随着数据的增长,树就会变高就会导致io变多,最终会影响查询变慢.
    它的每个子节点只能关联两个数据

     B树

    在B树的结构中,查询数据的时候要从主节点依次向下,且每个节点都又自己的数据data,

    以4层为例子,假如data数据占用1kb,每个磁盘块是16kb,也就是16x16x16=4096条,根据实际开发数据过少

    B+树

    B+树是在B树的基础上做的优化  
    1.为了降低树的高度
    2.为了将数据变为多个区间,区间越多,数据检索越快
    3.非叶子节点存储key,叶子节点存储key和数据
    4.叶子节点两两指针相互链接(符合磁盘的预读特性),顺序查询性能更高

    因为在B+树中所有的叶子节点都有,所以我们可以把key携带的data数据全部放到叶子节点

    而在各个的主节点里面只需要存放key就好

    以4层为例,假如磁盘块中的key占用20个字节,data数据为1kb,一个磁盘块为16kb,(16x1024/20) x  (16x1024/20) x 16约为10,737,418.24

    注:B+树中千万级别的数据,用3-4层即可。

    
    
  • 相关阅读:
    Java异常简介
    mysql索引
    关于this问题
    Centos 7 安装jdk1.7
    Java 将html导出word格式
    tomcat生成ssl证书
    数据库连接池的作用
    jquery的异步获取返回值为中文时乱码解决方法
    JQuery中ajax跨域问题
    JAVA 非对称加密算法RSA
  • 原文地址:https://www.cnblogs.com/wsycoo/p/15015681.html
Copyright © 2011-2022 走看看