java算法- B-Tree和B+Tree(个人整理,实用版)
一、介绍 B+树索引是B+树在 数据库 中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。 B+树中的B代表平衡(balance)。( 平衡多路查找树 ) B+树是从最早的平衡二叉树演化而来的。 二、B-Tree B-Tree是为 磁盘 等外存储设备设计的一种平衡查找树。 每个节点最多有m个孩子。 除了根节点和叶子节点外,其它每个节点至少有Ceil(m/2)个孩子。 若根节点不是叶子节点,则至少有2个孩子 所有叶子节点都在同一层,且不包含其它关键字信息 每个非终端节点包含n个关键字信息(P0,P1,…Pn, k1,…kn) 关键字的个数n满足:ceil(m/2)-1 <= n <= m-1 ki(i=1,…n)为关键字,且关键字升序排序。 Pi(i=1,…n)为指向子树根节点的指针。P(i-1)指向的子树的所有节点关键字均小于ki,但都大于k(i-1) (个人理解:关键字上的数据存储在本节点上,每个范围内的数据存储在下一个节点上,叶子节点只存储数据) 如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,当存储的数据量很大时同样会导致B-Tree的深度较大,进而影响查询效率。 原文 https://blog.csdn.net/baidu_29961857/article/details/89879739 package com.numberone