当前位置: 首页 > news >正文

页分裂 页合并(索引为什么会慢慢膨胀)

🔥 一句话总纲

B+Tree 就像图书馆书架:书(行)放满了一格(页) → 再放就得搬书、再开新格 → 结构调整就是页分裂/合并。


1️⃣ B+Tree 页结构回顾

每个页(Page):

  • 默认大小 16KB
  • 叶子节点存索引列 + 行指针(或全部列,聚簇索引)
  • 页满了,无法再插入 → 触发 页分裂

2️⃣ 页分裂(Page Split)

💡 核心理念

“一个页装不下新数据,就拆成两个页,把一半数据搬到新页。”

举例:

页原本:[1,2,3,4,5,6,7,8]
插入 9 → 页满
分裂成:左页:[1,2,3,4]右页:[5,6,7,8,9]
  • 新页要插入到父节点 → 父节点可能也满 → 父节点递归分裂
  • 最坏情况可能上升到根节点 → 树高 +1

🔥 影响

  • 写入慢:拆页需要修改父节点、更新 B+Tree 链表
  • 随机写多 → 脏页多 → Buffer Pool 压力大
  • 页膨胀 = B+Tree 越来越大 → 查询高度增加(I/O 多)

3️⃣ 页分裂触发场景

  1. 顺序插入

    • 自增主键 → 只在最右叶子插入 → 右侧页分裂 → 高性能稳定
  2. 随机插入

    • 主键非自增 → 中间页频繁分裂 → 随机 I/O 多 → 写性能下降
  3. 二级索引

    • 插入任意位置 → 页分裂更频繁

4️⃣ 页合并(Page Merge / Page Compression)

分裂后,有些页可能使用率很低:

  • 删除数据 → 页只剩 1~2 条
  • 页利用率 < 50% → 可合并左/右页 → 减少 B+Tree 膨胀

特点:

  • 异步进行(后台线程)
  • 避免频繁分裂导致树过高、随机 I/O 过多
  • 过度删除 + 插入 → 仍可能反复分裂/合并 → 写入性能波动

5️⃣ 脑补动画版(写入膨胀全过程)

  1. 初始页
[1,2,3,4,5,6,7,8]
  1. 插入 9 → 分裂
左页: [1,2,3,4]   右页: [5,6,7,8,9]
  1. 父节点更新
父页: [4,8] (指向左页、右页)
  1. 随机插入 3.5 → 中间页再次分裂
中间页:[3,4] → [3] [4] 两页  
父页需更新 → 树高度可能增加
  1. 删除大量 5~7 → 页合并
左页: [1,2,3,4] 右页: [8,9]

🎯 结果:树高可能减少,但页空洞仍存在 → 查询仍慢于理想状态


6️⃣ 为什么索引会慢慢膨胀?

  • B+Tree 页分裂是不可避免的,尤其是 随机插入或二级索引
  • 随着数据增长,索引页越来越多 → 树高增加 → 查询深度增加 → I/O 多 → 查询慢
  • 删除数据也不一定立即收缩 → 空洞页存在 → 内存/磁盘占用大
  • 写入频繁 → 分裂/合并频繁 → 写性能下降

7️⃣ 工程师优化策略

问题 解决方式
顺序插入不均衡 尽量用自增主键/预分配 key
二级索引膨胀 控制索引列大小,减少随机插入
页利用率低 定期 OPTIMIZE TABLE 或 rebuild 索引
写入性能下降 批量插入,减少单条随机写

🔥 总结一句话

页分裂和页合并是 B+Tree 自我调整机制,保证查询仍然对 I/O 友好,但随机写、二级索引、大量删除会让树膨胀 → 写慢、查询慢、空间浪费。

http://www.gsyq.cn/news/74680.html

相关文章:

  • 希腊移民企业推荐,比较好的希腊移民公司与希腊移民资深企业全解
  • 2025年度防撞板工厂直供TOP5专业厂家测评:甄选佛山头部
  • [PA 2019] Podatki drogowe 题解
  • 2025年实力不错的GEO源头厂家TOP5:甄选企业抢占AI
  • 2025年实力不错的GEO源头厂家TOP5:甄选企业抢占AI
  • 政府智能留样柜服务商推荐,知名度高的智能留样柜厂家全解析
  • 2025年上海财税服务公司排名:宝园财税的服务灵活性、基本信
  • 1分钟AI一键生成歌曲软件推荐
  • 2025年捏合机品牌排名推荐:力创捏合机口碑怎么样?
  • 2025年五大GEO推广服务排行榜,geo推广服务专业?
  • 2025年十大口碑好的智能消毒柜源头厂家推荐,学校智能消毒柜
  • 2025 年 12 月软件开发公司权威推荐榜:创新引擎与高效交付口碑之选
  • 实用指南:2. 单片机基础概述
  • 2025年工业设备智能化整体服务生产厂推荐:看哪家实力强
  • B+Tree(理解索引为什么这样做)
  • 2025年12月车间喷淋喷雾,车间喷雾降尘设备,高压喷雾机厂家最新推荐:喷雾精度与品牌筛选
  • 探秘中臻达:钢结构领域的靠谱之选
  • VC(9.0~14.x)运行库下载链接
  • Kubernetes集群的搭建与DevOps实践(上)- 架构设计篇
  • 2025年景观护栏设计公司五大推荐,景观护栏设计厂家选哪家合
  • 完整教程:C语言变量与输入输出详解——从printf到scanf的全掌握
  • 智能安全帽哪家好?哪家智能安全帽质量管控严
  • 2025激光设备市场权威排名:华工激光引领国产替代浪潮
  • 2025年12月鸡肠粉加工设备厂家推荐:全维度对比排行榜单及选购策略分析
  • 2025年度辽宁诚信的代理记账公司TOP5权威推荐:甄选企业
  • Java团队AI转型避坑指南:3周落地智能体,JBoltAI框架实战拆解
  • 2025年辽宁靠谱的代理记账品牌企业排行榜,新测评精选代理记
  • 2025年半导体点胶机与切割机企业实力排名,看看哪家产品价格
  • nano server 2016
  • 拒绝重复造轮子!JBoltAI 让 Java 开发者专注 AI 应用核心逻辑