我正在研究甲骨文的内部结构,我想知道文档中提到的“B树索引”实际上是经典的B树还是B+tree?
我认为这是一个B+tree,因为所有数据节点都存储在叶节点上。而且文件日的“B树”所以我不确定。
发布于 2022-06-26 15:53:06
文档没有使用术语"B+树“,但它确实详细地描述了它的树结构,实际上,它们所描述的通常被称为B+树。
例如,旧版本的文档(11.2):
枝条和叶块
B树索引有两种类型的块:用于搜索的分支块和存储值的叶块。B树索引的高层分支块包含指向较低级别索引块的索引数据。在图3-1中,根分支块有一个条目0-40,它指向下一个分支级别中最左边的块。这个分支块包含诸如0-10和11-19之类的条目。这些条目中的每一个指向一个叶块,其中包含范围内的键值。
https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721
更好的问题是,“为什么甲骨文不使用术语B+树”。Oracle对数据结构的实现可能不完全是教科书中规定的。他们可能有他们不想讨论的专有优化,而且他们可能没有实现B+树的一些特性(或者实现它们与标准规范不同)。谁知道呢。在任何情况下,即使它们使用的结构不是教科书的B+树,它也是(如您所怀疑的那样) B+树的一种形式。
https://stackoverflow.com/questions/72761639
复制相似问题