检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
分区级MDL锁 在MySQL社区版中,分区表的数据访问操作(DML)和分区维护操作(DDL)会互相阻塞,这意味着分区维护只能在业务低峰期进行。然而,创建和删除分区的操作相对频繁,这在很大程度上限制了分区表的使用。 GaussDB(for MySQL)实现了分区级别的MDL锁,使得
二级分区 功能介绍 注意事项 RANGE-RANGE RANGE-LIST LIST-RANGE LIST-LIST HASH-HASH HASH-KEY HASH-RANGE HASH-LIST KEY-HASH KEY-KEY KEY-RANGE KEY-LIST 父主题: 分区表增强
GaussDB(for MySQL)分区表完全兼容社区MySQL的语法和功能。同时,GaussDB(for MySQL)分区表相对于社区MySQL进行了功能增强,支持丰富的分区表类型及组合,使您可以更加便携、简单和高效的使用分区表。 GaussDB(for MySQL)兼容的社区MySQL分区表类型如下:
要创建的表名称。 expr 分区字段表达式,目前只支持INT类型,不支持字符类型。 num 用于分区是HASH或者KEY类型的分区表,来指定分区个数。 sub_num 用于二级分区是HASH或者KEY类型的分区表,来指定单个分区的子分区的个数。 partition_name 分区名称,同一个表中不可重复。
KEY类型的分区表的定义可以省略,如果指定了PARTITIONS num,默认创建num个分区定义,否则一般情况默认会创建1个分区定义。 对于二级分区,如果要省略分区定义,需要所有的子分区都不能给出定义,否则都要指定分区定义。 语法 创建一个或多个HASH-KEY分区表,其中每个分区可能有一个或一个以上的子分区。
注意事项 GaussDB(for MySQL)的内核版本需要大于等于2.0.48.231200。 如需使用分区表扩展类型功能,请在管理控制台右上角,选择“工单 > 新建工单”,提交申请。 父主题: 二级分区
COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition
级的LIST分区表,因此所有的规则和约束都同一级的LIST是一样的, 不同主分区下的子分区定义可以不一样。 语法 创建一个或多个RANGE-LIST分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE ... PARTITION BY RANGE {(expr)
级的LIST分区表,因此所有的规则和约束都同一级的LIST是一样的, 不同主分区下的子分区定义可以不一样。 语法 创建一个或多个LIST-RANGE分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE [ schema. ]table_name table_definition
[SUBPARTITIONS sub_num] (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition
COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition
COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition
COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name VALUES IN (value_list)
RANGE类型要求每个分区定义的分区键值value或value_list必须是单调递增的。 MAXVALUE只能位于最后位置。 对于NULL的处理,认为NULL值是无限小的值,因此NULL值总是会插入第一个分区定义里。 每个主分区下的子分区可以看成是一个新的一级的RANGE分区表,因此所有
[SUBPARTITIONS sub_num] (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition
COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition
分区表增强 二级分区 LIST DEFAULT HASH INTERVAL RANGE 分区级MDL锁 父主题: 常见内核功能
支持二级分区LIST+DEFAULT,但每个PARTITION仅支持一个二级DEFAULT分区。 一级分区一个DEFAULT分区的情况下,支持所有类型的二级分区。 一级分区多个DEFAULT分区的情况下,仅支持HASH或KEY二级分区。 参数说明 在参数配置页面通过设置参数rds_list_default_
RANGE分区表是RANGE分区表的扩展,向RANGE分区表插入数据时,如果插入的数据超出当前已存在分区的范围,将无法插入并且会返回错误; 而对于INTERVAL RANGE分区表,当新插入的数据超过现有分区的范围时,允许数据库根据INTERVAL子句提前指定的规则来添加新分区。 前提条件
分区级MDL锁:在MySQL社区版中,分区表的数据访问操作(DML)和分区维护操作(DDL)会互相阻塞,这意味着分区维护只能在业务低峰期进行。本版本实现了分区级别的MDL锁,使得分区表的锁粒度从表级降低到了分区级,不同分区上的DML和特定DDL(如增加和删除分区)在MDL锁上不会相互阻塞,从而大大提升分区间操作的并发性。