mysql 5.6 在线DDL
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,online ddl主要包括3个阶段,prepare阶段,ddl执行阶段,commit阶段,rebuild方式比no-rebuild方式实质多了一个ddl执行阶段,prepare阶段和commit阶段
千家信息网最后更新 2026年10月31日mysql 5.6 在线DDL
online ddl主要包括3个阶段,prepare阶段,ddl执行阶段,commit阶段,rebuild方式比no-rebuild方式实质多了一个ddl执行阶段,prepare阶段和commit阶段类似。下面将主要介绍ddl执行过程中三个阶段的流程。
Prepare阶段:
创建新的临时frm文件(与InnoDB无关)
持有EXCLUSIVE-MDL锁,禁止读写
根据alter类型,确定执行方式(copy,online-rebuild,online-norebuild)
假如是Add Index,则选择online-norebuild即INPLACE方式更新数据字典的内存对象
分配row_log对象记录增量(仅rebuild类型需要)
生成新的临时ibd文件(仅rebuild类型需要)
ddl执行阶段:
降级EXCLUSIVE-MDL锁,允许读写
扫描old_table的聚集索引每一条记录rec
遍历新表的聚集索引和二级索引,逐一处理
根据rec构造对应的索引项
将构造索引项插入sort_buffer块排序
将sort_buffer块更新到新的索引上
记录ddl执行过程中产生的增量(仅rebuild类型需要)
重放row_log中的操作到新索引上(no-rebuild数据是在原表上更新的)
重放row_log间产生dml操作append到row_log最后一个Block
commit阶段:
当前Block为row_log最后一个时,禁止读写,升级到EXCLUSIVE-MDL锁
重做row_log中最后一部分增量
更新innodb的数据字典表
提交事务(刷事务的redo日志)
修改统计信息
rename临时idb文件,frm文件
变更完成
阶段
索引
文件
方式
类型
更新
增量
数据
事务
字典
对象
过程
三个
信息
内存
实质
日志
是在
流程
中产
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
互联网络科技有限公司
互联网 科技创新
深圳互联网络科技有限公司
壹账通互联网科技
互联网科技网站
互联网科技公司名称
中国最先进互联网科技公司
哈尔滨屹滨互联网科技有限公司
世界互联网领先科技成果获奖
互联网科技公司营业执照怎么办理
皮皮虾互联网科技有限公司
张召忠谈中国互联网科技
工业互联网科技成果转化
半导体行业属于互联网高科技类吗
35岁以上互联网科技行业
江苏互联网科技小贷
抖集互联网科技技术咨询
云南互联网科技学费
银川新华互联网科技学校原画
互联网科技公司简介
互联网科技巨头监管
关于新基建和互联网科技
上海互联网科技有限公司
西安互联网科技公司
恒生科技互联网指数分析
全球顶尖互联网科技公司
崇明区互联网教育科技售后服务
互联网硬科技公司
互联网科技收购价值