Mysql页分裂
2023-03-31 11:05:32 时间
当我们向某个索引对应的B+树插入记录,需要先定位到这条记录应该被插入到哪个叶子节点对应的数据页中,确定之后有两种情况:
①该页恰好空间足够,能直接插入数据
②该页空间不足,不能直接插入数据
我们把该页称为页A
对于第一种情况,数据可以直接插入页A而不会产生其他影响; 对于第二种情况,页A空间不足,但数据需要插入页A,那就需要进行页分裂;
页分裂过程
创建一个新页B,将页A中的部分数据转移到页B中,这样就页A能空出多余的空间存储新纪录,再将页B添加到叶子节点的链表中;
但这还没完,由于叶子节点链表发生了变化,记录叶子节点情况的上一层,也需要发生一些变化,来记录这个新插入的页B,也就是在内节点添加一条目录项记录,来指向这个新创建的页B;
当然,如果作为内节点的页剩余空间也不足够容纳新增一条目录记录项,那么该内节点也会发生页分裂;
显而易见,插入数据时发生页分裂会降低性能;
相关文章
- 数据|“全面二孩”后,想生就生了?
- STM32串口开发之环形缓冲区
- IBM斥资20亿美元收购,天气数据为何值钱?
- 想知道PHP数据库编程之MySQL优化策略概述吗?进来我告诉你
- Redis缓存高频难题一问三不知,你的亿级系统不会炸吗?
- 简述:我的2017技术流水账
- 行业报告:医疗数据泄露愈发严重,谁之过错?
- 微软开源的可视化神器,上手太酷炫了
- 互联网金融风控模型,需要多大的数据?
- 可穿戴设备数据监测登榜2016十大医疗创新
- 一个单层的基础神经网络实现手写字识别
- 一文带你了解MindSpore支持的万亿级参数超大模型关键技术!
- 2017年大数据年终盘点:开源工具、MySQL和Python是最大赢家!
- 英国警方,即将窥探你的网络足迹
- 2015全局数据白皮书:我们需要什么样更“好”的数据?
- Java CompletableFuture详解
- 使用Oracle中的emp、dept来学习Django ORM
- 数据告诉你:面对双11,线下商机何在
- Hadoop和大数据:60款顶级开源工具
- 五张图区分商业分析师与数据科学家