MySQL的B+树是其索引结构的核心,包含以下关键子名词:
1. 节点类型
- 根节点(Root Node):树的最顶层节点,唯一不包含父节点的节点。
- 叶子节点(Leaf Node):存储实际数据记录的节点,所有叶子节点通过双向链表连接。
- 内部节点(Internal Node):仅存储索引键和子节点指针,不存储数据。
- 分裂节点(Split Node):插入数据时因节点已满而分裂产生的新节点。
- 合并节点(Merge Node):删除数据导致节点数据不足时,与相邻节点合并的节点。
2. 结构特征
- 阶数(Order):每个节点最多能包含的子节点数量,决定树的高度。
- 键值(Key):索引列的值,用于数据查找和节点间的排序。
- 指针(Pointer):包括子节点指针(指向子节点)和叶子节点指针(指向相邻叶子节点)。
- 双向链表(Doubly Linked List):叶子节点按顺序连接,支持快速范围查询。
3. 操作术语
- 插入(Insert):向树中添加新键值,可能触发节点分裂。
- 删除(Delete):移除键值,可能触发节点合并。
- 查找(Search):从根节点开始逐层向下,通过键值比较定位数据。
- 分裂(Split):节点数据超过容量时,将数据分散到新节点,保持树平衡。
- 合并(Merge):节点数据不足时,与相邻节点合并以维持树的结构。
4. 相关概念
- 聚集索引(Clustered Index):数据记录直接存储在叶子节点中(如InnoDB的主键索引)。
- 辅助索引(Secondary Index):叶子节点存储主键值,需通过回表获取数据。
- 回表(回行,Table Lookup):通过辅助索引找到主键后,再通过聚集索引查询数据的过程。
- 覆盖索引(Covering Index):索引包含查询所需的所有列,避免回表。
总结
B+树通过节点类型、结构特征和操作机制实现高效的索引查询和数据管理。