网站策划书如何做,制作网站后台,小说网站做公众号好还是网站好,定制开发app软件为什么要使用B树#xff1f;
可以进行数据查询的数据结构有二叉搜索树、哈希表等。对于前者来说#xff0c;树的高度越高#xff0c;进行查询比较的时候访问磁盘的次数就越多。而后者只有在数据等于key值的时候才能进行查询#xff0c;不能进行模糊匹配。所以出现了B树来解…为什么要使用B树
可以进行数据查询的数据结构有二叉搜索树、哈希表等。对于前者来说树的高度越高进行查询比较的时候访问磁盘的次数就越多。而后者只有在数据等于key值的时候才能进行查询不能进行模糊匹配。所以出现了B树来解决这些问题
B树的前身——B树
B树可以认为是一个N叉搜索树。树的高度越高进行查询比较的时候访问磁盘的次数就越多。 存放N个key引出N1个节点。例如30引出的节点都要满足X 30 30和40之间引出的节点要满足30X40
当节点的子树多了之后节点上保存的key多了意味着在同样key的个数的前提下B树的高度要比二叉搜索树低很多
B树
B树是存了N个key引出N个节点。且底层的节点连接成类似于链表的结构 B树的特点
一个节点可以存储N个keyN个key划分出了N个区间每个节点中的key的值都会在子结点中也存在同时该key是子节点的最大值B树的叶子节点是首尾相连类似于一个链表由于叶子节点是完整的数据集合只在叶子节点这里存储数据表的每一行的数据。而非叶子节点只存key值本身即可
B树的优点
当前一个节点保存更多的key最终树的高度是相对更矮的。查询的时候减少了IO访问次数所有的查询最终都会落在叶子节点上这意味着查询任何一个数据经过的IO访问次数是一样的B树的所有叶子节点构成链表此时比较方便进行范围查询由于数据都在叶子节点上非叶子节点只存储key导致非叶子节点占用空间较小。这些非叶子节点就可能在内存中缓存又进一步减少了IO次数