新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/11/13 22:22:45来源:尧图网络
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 需要对相关的页加锁。这意味着在分裂期间其他事务对这些页的读写操作可能被阻塞从而影响并发吞吐量。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉