首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AI Agent智能应用从0到1定制开发(完结无秘)

AI Agent智能应用从0到1定制开发(完结无秘)

下载看水印

Execute 阶段

降级 EXCLUSIVE-MDL 锁为 SHARED-MDL 锁,允许读写操作。

扫描原表聚集索引的每一条记录。

遍历新表的聚集索引和二级索引,逐一处理。

根据原表中的记录构造对应的索引项。

将构造的索引项插入 sort_buffer 块排序。

将 sort_buffer 块更新到新表的索引上。

记录 Online DDL 执行过程中产生的增量(online-rebuild)。

重放 row_log 中的操作到新表的索引上(online-not-rebuild 数据是在原表上更新)。

重放 row_log 中的 DML 操作到新表的数据行上。

Commit 阶段

升级到 EXCLUSIVE-MDL 锁,阻止读写操作。

重做 row_log 中最后一部分增量。

更新 InnoDB 的数据字典表。

提交事务,写 redo log。

修改统计信息。

重命名临时 ibd 文件,frm 文件。

变更完成,释放 EXCLUSIVE-MDL 锁。

尽管 Prepare 阶段和 Commit 阶段也加了 EXCLUSIVE-MDL 锁,但操作非常轻量,因此耗时较低。Execute 阶段允许读写操作,并通过 row_log 记录期间的变更数据记录,最终应用这些变更到新表中,从而实现 Online DDL 的效果。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OXpzQ8VmT1zhIRVxHCRNsiXQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券