• ADADADADAD

    MySQL Online DDL的实现细节介绍[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:12:42

    作者:文/会员上传

    简介:

    MySQL Online DDL的实现细节共分为三个阶段:
    Prepare阶段
    1.创建临时frm文件
    2.持有EXCLUSIVE-MDL锁,禁止读写
    3.根据ALTER类型,确定执行方式(copy,online-rebuild,online-nor

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    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.变更完成
    MySQL Online DDL的实现细节介绍.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: ddlmysqlonline