在阿里云云原生数据仓库AnalyticDB中,DDL增删改列的操作不会像RDS那样进行全表克隆重构,而是采用一系列优化技术来实现快速的操作。ADB的元数据和数据存储是分离的,其中元数据存储在主节点的内存中,成千上万的数据节点则专注于数据存储和计算。因此,当进行DDL操作时,只会修改元数据。
当你执行DDL操作时,AnalyticDB将会立即通知所有正在执行 SELECT 查询的节点,以引导这些节点抛弃原有的方案,并使用新的元数据重新计算新方案的执行计划。AD采用Delta Tree算法来优化DDL操作,可以快速地支持列增、列删、列改等操作,避免影响业务性能。
需要注意的是,当进行列删操作时,列数据并不会标记为删除,而是会通过状态存储在Delta Tree中。如果再次添加相同名称和数据类型的列,AnalyticDB将会尝试重用已经存在的列数据,以避免数据移动和复制。而当增加列数据时,AD会在后台把新增加的列数据插入到Delta Tree中。
因此,当你在使用AnalyticDB时执行DDL增删改列操作时,不会进行全表克隆重构,而是通过一系列优化技术来支持快速的操作。同时,需要注意DDL操作的执行效率,合理安排业务空闲期来执行DDL操作,以避免对业务产生影响。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。