MySQL Online DDL的实现细节介绍
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,MySQL Online DDL的实现细节共分为三个阶段:Prepare阶段1.创建临时frm文件2.持有EXCLUSIVE-MDL锁,禁止读写3.根据ALTER类型,确定执行方式(copy,onli
千家信息网最后更新 2025年11月08日MySQL Online DDL的实现细节介绍MySQL Online DDL的实现细节共分为三个阶段:
Prepare阶段
1.创建临时frm文件
2.持有EXCLUSIVE-MDL锁,禁止读写
3.根据ALTER类型,确定执行方式(copy,online-rebuild,online-norebuild)
4.更新数据字典的内存对象
5.分配row_log对象记录增量
6.生成临时ibd文件
ddl执行阶段
1.降级EXCLUSIVE-MDL锁,允许读写
2.扫描原表的聚簇索引每条记录
3.遍历新表的聚簇索引和二级索引,逐一处理
4.根据记录构造对应的索引项
5.将构造索引项插入sort_buffer块
6.将sort_buffer块插入新的索引
7.处理ddl执行过程中产生的增量(仅rebuild类型需要)
commit阶段
1.升级到EXCLUSIVE-MDL锁,禁止读写
2.应用最后row_log中产的日志
3.更新innodb的数据字典表
4.提交事务(刷事务的redo日志)
5.修改统计信息
6.rename临时idb文件,frm文件
7.变更完成
Prepare阶段
1.创建临时frm文件
2.持有EXCLUSIVE-MDL锁,禁止读写
3.根据ALTER类型,确定执行方式(copy,online-rebuild,online-norebuild)
4.更新数据字典的内存对象
5.分配row_log对象记录增量
6.生成临时ibd文件
ddl执行阶段
1.降级EXCLUSIVE-MDL锁,允许读写
2.扫描原表的聚簇索引每条记录
3.遍历新表的聚簇索引和二级索引,逐一处理
4.根据记录构造对应的索引项
5.将构造索引项插入sort_buffer块
6.将sort_buffer块插入新的索引
7.处理ddl执行过程中产生的增量(仅rebuild类型需要)
commit阶段
1.升级到EXCLUSIVE-MDL锁,禁止读写
2.应用最后row_log中产的日志
3.更新innodb的数据字典表
4.提交事务(刷事务的redo日志)
5.修改统计信息
6.rename临时idb文件,frm文件
7.变更完成
索引
文件
阶段
事务
增量
字典
对象
数据
日志
类型
中产
处理
更新
细节
三个
信息
内存
方式
过程
分配
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库中的班级用什么表示
阿里怎么做网络安全
怎么查MOF材料数据库
江苏赛普网络技术有限公司周敏
黑客对我国网络安全
弘讯科技工业互联网马仁宏
华为服务器国内市场排名
如何查看阿里云服务器里的软件
如何登录海康的视频服务器
联想服务器开启raid卡缓存
打数据库标签
数据库两个独立型
服务器存储空间占用高怎么办
twitch服务器
IBM 服务器
无锡纷烤网络技术有限公司
深圳估辰网络技术有限责任公司
易安网络技术有限公司
无锡华硕服务器维修服务
数据库连接动态切换
科技服务包括利用高校数据库
上海常见网络技术设置
方舟生存进化服务器如何传送
3网络安全龙头股
一台服务器多个数据库
服务器加载不了raid
实验三数据库
用户收藏信息是放服务器还是本地
北京市软件开发资质怎么办理
如何切换设置代理IP服务器