You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle默认使用的B-tree索引底层是经典B树还是B+树?

Oracle默认B-tree索引的底层结构说明

你的判断完全正确,Oracle官方文档记载的默认B-tree索引,底层实现是B+树结构,并非学术定义里的经典B树原型。

核心判断依据

  • 结构特征完全匹配B+树定义:该类索引的所有完整索引条目(包含索引键值、对应行的ROWID)都只存储在最下层的叶子节点,上层的分支节点仅存储用于路由导航的键值和子节点指针,不存放完整的数据条目。这是B+树和经典B树最本质的区别——经典B树的每一层节点都会存储完整数据条目。
  • 叶子节点通过双向指针串联为有序链表:执行范围扫描时,找到第一个匹配的叶子节点后,可以直接顺着链表顺序读取所有符合条件的条目,不需要回溯到上层分支节点重新遍历,这也是经典B树不具备的典型B+树特征。

命名差异说明

数据库工业界对B树类索引的命名从来没有严格套用学术定义,Oracle文档里写的"B-tree"是对整个B树衍生索引家族的统称,不是特指1970年最初提出的经典B树结构。不止Oracle,绝大多数关系型数据库的常规有序B树类索引,底层用的都是B+树,文档普遍会简称为"B-tree索引",属于行业通用的命名习惯,不是特殊的自研结构。

补充一个容易混淆的点:Oracle的B-tree索引不存在经典B树那种"非叶子节点也存储用户数据条目"的设计,不要因为文档的统一命名就误判结构。

内容的提问来源于stack exchange,提问作者Catarina Nogueira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 07:24:37