- 文档首页
云数据库 veDB MySQL 版
用户指南
冷热分离
冷热分离限制说明
冷热分离限制说明
本文汇总了使用冷热分离功能的相关限制。
功能限制
- 仅支持在创建实例时选择是否创建包含冷热分离功能的实例;对于已创建的不包含冷热分离功能的实例,不支持动态开启该功能。
- 已创建含有冷热分离功能的实例,不支持动态关闭该功能,但可以选择不使用冷数据归档能力。详情请参将冷数据转换回热数据。
操作限制
冷表虽在功能上与普通表没有区别,仍然可以做 DDL 和 DML 操作,但性能较差,为避免 IO 异常和性能风险,部分操作不建议执行,详情如下表所示:
说明
- 对冷表执行 DML/DDL 操作时,建议先将其转换为热表,待执行完 DML/DDL 操作之后再转换为冷表。
- 以下场景示例仅作为参考,请结合实际业务场景判断可能存在的风险。
除以上场景外,分区表需特别注意查询更新是否带分区键。针对分区表的操作,若没有带分区键,MySQL 会遍历所有分区来查询满足条件的数据,容易带来性能风险。
DDL 限制
- 普通表需要在 CREATE 或 ALTER 时通过设置 comment 调整表的冷热属性;分区表需要通过设置子分区的 comment 来调整冷热属性,不支持设置表级别的冷热属性,且不支持对包含二级分区的分区表做冷热转换。操作详情请参见归档冷数据。
- 仅支持在创建时对有明确分区的分区表指定冷热属性,因此不支持在创建时对 Hash 和 Key 类型的分区表指定子分区的冷热属性。只能在创建成功后,通过 ALTER 对子分区设置冷热属性。
- 普通表转分区表时,表级别的冷热属性将被自动剔除,需要重新通过 ALTER 对子分区设置冷热属性。同理,分区表转普通表时也需要重新设置表级别的冷热属性。
create table table_name (a int) partition by hash(a) partitions 4;
alter table table_name comment="storage_policy=cold" remove partitioning;
- 表的冷热属性以 comment 为准,可继承 comment 的操作,则可继承冷热属性。
- 对于重建或创建表的 DDL,如果重建之后保留 comment 则可以继承属性,如果不保留 comment 则属性丢弃,需要重新设置。例如:
- Hash 分区的分区表,optimize 之后会重建子分区,老的子分区的属性无法继承。
- CREATE TABLE LIKE Hash 分区表,无 comment 可继承,则新分区表都没有设置属性。
- CREATE AS 不会继承 comment,因此所有被创建出来的表都不会有属性。
- Exchange 分区表和普通表会同步冷热属性。
- 如下所示,在 Exchange 分区表和普通表后,此表 a_1 中的 p0 分区将变为冷数据,表 a_n 将变为热数据。
create table a_1 (a int) partition by range columns(a) (
partition p0 values less than (3) comment='storage_policy=hot',
partition p1 values less than (5) comment='storage_policy=hot'
create table a_n (a int) comment="storage_policy=cold";
alter table a_1 exchange partition p0 with table a_n;
最近更新时间:2025.10.24 17:36:37