首页/新闻资讯/正文详情

MySQL 页分裂:你不得不了解的InnoDB 底层机制 (上)

发布时间:2026/9/27 21:44:32 来源:云帆数科 栏目:资讯中心
MySQL 页分裂:你不得不了解的InnoDB 底层机制 (上)
前言页分裂Page Split是 InnoDB 存储引擎中一个极其重要却常被忽视的底层机制。它直接影响着数据库的写入性能、空间利用率和查询效率是每一位研发人员和 DBA 都应该深入理解的核心知识。本系列文章将分为上、中、下三篇由浅入深地带你全面掌握页分裂话不多说我们从上篇开始。一、什么是页分裂先聊聊页InnoDB 中页Page是数据存储和读写的最小单位默认大小为16KB。而 MySQL 的表是索引组织表每个页中的记录按照主键的物理顺序排列并非插入顺序形成一个单向链表。页与页之间则通过双向链表相互连接共同构成一棵B 树索引结构。再说页分裂当我们向一个已经塞满了的页中插入新数据时这个页已经没有足够的空间来容纳新记录了。此时InnoDB 会执行一个操作 ——页分裂Page Split。页分裂就是将一个已满的数据页拆分成两个页并将部分数据迁移到新页中以腾出空间存放新插入的记录。这个过程对应用层完全透明但在底层却涉及数据搬迁、指针调整、B 树结构变更等一系列操作。二、页分裂的过程页分裂的触发和执行可以分为以下几个步骤① 插入请求当一条insert语句执行时InnoDB 根据主键值定位到数据应该插入的目标页。② 判断空间是否充足InnoDB 检查目标页的剩余空间。如果空间足够直接插入流程结束。如果空间不足则触发页分裂。③ 申请新页、数据迁移InnoDB 从表空间中申请一个新的空白页。这是页分裂的核心步骤。InnoDB 会将原页中大约一半的记录移动到新页中。具体来说原页保留前半部分的记录新页承接后半部分的记录新插入的数据根据主键大小放入对应的页中这里的一半并不是严格的 50%InnoDB 会根据实际情况做一定的优化调整。④ 调整指针与索引数据搬迁完成后还需要做以下工作更新页之间的双向链表指针将新页正确地链接到原页和原页的下一页之间更新父节点上层索引页在 B 树的上层节点中插入一条指向新页的索引记录如果上层节点也满了则会递归触发上层页的分裂极端情况下甚至可能导致 B 树层级增加三、页分裂的弊端页分裂虽然是 InnoDB 维护 B 树结构的必要机制但它带来的负面影响不容忽视。1 性能开销大页分裂涉及数据复制、页申请、指针修改、索引更新等多个步骤这些操作都需要额外的 CPU 和 I/O 资源。在高并发写入场景下频繁的页分裂会显著拖慢写入性能。2 空间利用率下降分裂后原页和新页通常都只有一半左右的数据这意味着页的空间利用率从接近 100% 骤降到约50%。大量的页分裂会导致表的物理存储膨胀占用更多的磁盘空间同时也会降低缓冲池的命中率。3 产生磁盘碎片页分裂后新申请的页在磁盘上的物理位置不一定与原页相邻。这会导致原本连续的数据变得离散分布使得范围查询和全表扫描时需要更多的随机 I/O而非高效的顺序 I/O。4 影响并发性能页分裂过程中InnoDB 需要对相关的页加锁。这意味着在分裂期间其他事务对这些页的读写操作可能被阻塞从而影响并发吞吐量。

相关推荐

嵌入式驱动开发:量产级工程化实战(第 4 篇)——驱动分层——HAL 到底该多薄
嵌入式驱动开发:量产级工程化实战(第 4 篇)——驱动分层——HAL 到底该多薄

一次"换芯片"引发的重构前年我接手了一个项目,前团队用 STM32F103 做了一款数据采集器,代码量大概两万行。项目要升级,主控换成 STM32G474,因为需要更高的 ADC 采样率和浮点运算能力。硬件工程师改完板子,软… · 2026/9/27 21:44:32

【嵌入式学习】嵌入式原理知识(一)
【嵌入式学习】嵌入式原理知识(一)

此部分内容主要讲述,单片机的原理知识。配合嵌入式基础功能实现。可进一步的掌握单片机的知识。1. STM32 1.1 STM32的含义STMicroelectronics-意法半导体 M-Micro Controller-微控制器 32-32位1.2 STM32的型号 型号可以参照:STM32系列的单片机型号&… · 2026/9/27 21:44:25

Longhorn CSI Snapshot 支持:基于 VolumeSnapshot 的备份创建、恢复与删除实战指南
Longhorn CSI Snapshot 支持:基于 VolumeSnapshot 的备份创建、恢复与删除实战指南

云原生存储高可用容器编排 【免费下载链接】longhorn Cloud-Native distributed storage built on and for Kubernetes 项目地址: https://gitcode.com/gh_mirrors/lo/longhorn 点击查看 免费下载 导读 本文以 Longhorn 仓库中的设计文档 enhancements/20200904-c… · 2026/9/27 21:44:25

收藏备用|Agent核心技术拆解(基础层+协作层),小白程序员入门大模型必看:TaoToken统一Key接入配置骨架
收藏备用|Agent核心技术拆解(基础层+协作层),小白程序员入门大模型必看:TaoToken统一Key接入配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:17:24

基于mongoose的C++ HTTP服务端:TaoToken统一Key接入与config.toml骨架
基于mongoose的C++ HTTP服务端:TaoToken统一Key接入与config.toml骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:17:24

技术速递|GitHub Copilot 辅助 Playwright MCP 调试:快速修复 Web 应用样式错乱问题
技术速递|GitHub Copilot 辅助 Playwright MCP 调试:快速修复 Web 应用样式错乱问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:17:24

警告:你的Agent可能无法“解决”真实世界的视觉问题——用TaoToken统一Key复现多模态评测基准
警告:你的Agent可能无法“解决”真实世界的视觉问题——用TaoToken统一Key复现多模态评测基准

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:17:24

把 TeXstudio / LaTeX 工程交给 AI:texstudio-mcp 功能详解与 TaoToken 配置骨架
把 TeXstudio / LaTeX 工程交给 AI:texstudio-mcp 功能详解与 TaoToken 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:17:24

避坑指南:茶山东莞网站建设实战案例拆解,省钱不踩雷
避坑指南:茶山东莞网站建设实战案例拆解,省钱不踩雷

避坑指南:茶山东莞网站建设实战案例拆解,省钱不踩雷 找东莞建站公司怕被坑高价?别慌,看完这篇茶山东莞建设站的实战案例,你心里就有底了。 很多老板一上来就问:“做个网站多少钱?”… · 2026/9/27 22:17:18

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码