文档

概述

更新时间:

PolarDB-X 2.0的AUTO模式数据库分区表支持使用一级分区与二级分区,并且一级分区的分区策略与二级分区的分区策略具备完全正交的能力,相互组合没有限制,详情请参考手动创建分区表(AUTO模式)

为此,PolarDB-X 2.0的AUTO模式数据库分区表配套了非常完善的分区变更及管理能力,具体的分区管理能力包括以下几种:

  • 分裂分区

  • 分裂热点

  • 合并分区

  • 迁移分区

  • 重命名分区

  • 增加分区

  • 删除分区

  • 修改分区

  • 重组分区

  • 清空分区

分区变更操作对不同分区策略的支持

PolarDB-X 2.0的AUTO模式数据库分区表支持兼容MySQL分区表语法的多种分区策略:

  • Hash

  • Key

  • Range

  • Range Columns

  • List

  • List Columns

另外,还提供了PolarxDB-X特有分区策略CoHash。

由于上述的不同分区策略对其分区定义及管理方式有所不同。因此,不同分区策略所支持的分区变更操作类型也不相同,以下是各种分区策略所支持执行的分区变更操作类型。

不同分区策略下支持的分区变更操作类型

操作语义

Hash

Key

Range

Range Columns

List

List Columns

CoHash

分裂分区

将一个分区分裂为多个

支持

支持

支持

支持

支持

支持

支持

分裂热点

基于热点值进行分裂操作

不支持

支持

不支持

不支持

不支持

不支持

不支持

合并分区

将多个分区合并为一个

支持

支持

支持

支持

支持

支持

支持

迁移分区

将一个分区实现DN节点间的迁移

支持

支持

支持

支持

支持

支持

支持

重命名分区

修改一个分区名字

支持

支持

支持

支持

支持

支持

支持

增加分区

增加一个分区

不支持

不支持

支持

支持

支持

支持

不支持

删除分区

删除一个分区

不支持

不支持

支持

支持

支持

支持

不支持

修改分区

修改List分区的Values集合

不支持

不支持

不支持

不支持

支持

支持

不支持

重组分区

对连续的多个分区进行重新定义

不支持

不支持

支持

支持

支持

支持

不支持

清空分区

清空一个分区数据

支持

支持

支持

支持

支持

支持

支持

分区变更操作对不同变更对象的支持

AUTO模式数据库分区表允许将分区定义完全相同的分区表集合划为一个表组,这样同一个表组的分区表的各个分区及分布,会始终保持对齐(比如,表组内的分区表始终同时分裂、同时合并,等等),表组级的分区变更这样可以使分区更变在执行过程中, 不影响原有多个分区表之间的JOIN计算下推。

PolarDB-X对于上述的每一种分区策略下的每一种分区变更的类型,均支持不同变更层级(表级与表组级)、不同变更对象(主表、索引表)的变更:

  • 表级:变更单个分区表的分区,又可细分为主表与索引表

    • 变更主表分区:变更一个主表的分区

    • 变更全局索引表分区:变更一个主表的全局索引表的分区

  • 表组级:变更整个表组所有逻辑表的分区

以下是分区分裂为例,展示对不同变更层级、不同变更对象进行操作的语法示例:

分区变更的对象(以分区分裂为示例)

表级变更

TABLE

表组级变更

TABLEGROUP

变更主表分区

变更全局索引的分区

基于表组名

变更表组分区

基于表名

变更表组分区

(自动根据表名查找对应的表组并变更它的分区)

变更

一级分区

ALTER TABLE

[db_name.]tbl_name

SPLIT PARTITION

part_name

...

ALTER INDEX index_name

ON TABLE [db_name.]tbl_name

SPLIT PARTITION

part_name

...

ALTER TABLEGROUP

tg_Name

SPLIT PARTITION

part_name

...

ALTER

TABLEGROUP

BY TABLE

[db_name.]tbl_name

SPLIT PARTITION

part_name

...

变更

二级分区

ALTER TABLE

[db_name.]tbl_name

SPLIT SUBPARTITION

subpart_name

...

ALTER INDEX index_name

ON TABLE [db_name.]tbl_name

SPLIT SUBPARTITION

subpart_name

...

ALTER TABLEGROUP

tg_name

SPLIT SUBPARTITION

subpart_name

...

ALTER

TABLEGROUP

BY TABLE

[db_name.]tbl_name

SPLIT

SUBPARTITION

subpart_name

...

不同分区变更操作的具体语法示例,请参考该分区变更语法目录下的各种分区变更说明。

  • 本页导读 (0)
文档反馈