日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

增加分區

注意事項

  • 本文要求PolarDB-X實例版本必須為5.4.14-16539836及以上;

  • 若要增加二級分區,要求PolarDB-X實例版本必須為5.4.17-16952556及以上。

  • 哈希類型的分區策略,例如HASH/KEY/CO_HASH,不支持執行該操作。

  • Range/Range Columns的分區策略,若分區定義使用了maxvalue等“catch-all”分區,不支持執行該分區操作。

  • List/List Columns的分區策略,若分區定義使用了default等“catch-all”分區,不支持執行該分區操作。

名詞解釋

  • 表組:分區列完全相同的一組邏輯表或全局索引表的集合。

  • 全局索引:使用另一個維度進行水平分區的數據與主表始終保持強一致的分區表。

語法

ALTER alter_target_definition add_partition_operation_definition

alter_target_definition:
		TABLE [db_name.]tbl_name
 | TABLE tbl_name.index_name
 | TABLEGROUP tg_name
 | INDEX index_name ON TABLE [db_name.]tbl_name
 | TABLEGROUP BY TABLE [db_name.]tbl_name
 | TABLEGROUP BY INDEX index_name ON TABLE [db_name.]tbl_name

add_partition_operation_definition:
		ADD PARTITION (partition_specs_definition)
 | ADD SUBPARTITION (subpartition_specs_definition)
 | MODIFY PARTITION part_name ADD SUBPARTITION (subpartition_specs_definition)

partition_specs_definition:
 range_partition_list
 | list_partition_list

subpartition_specs_definition:
 range_subpartition_list
 | list_subpartition_list

range_partition_list:
 ( range_partition [, range_partition, ... ] )

range_partition:
 	PARTITION partition_name VALUES LESS THAN (range_bound_value) 

# 二級分區的Range/Range Columns分區定義
range_subpartition_list:
	( range_subpartition [, range_subpartition, ... ] )

range_subpartition:
 SUBPARTITION subpartition_name VALUES LESS THAN (range_bound_value) [partition_spec_options]

list_partition_list:
 (list_partition [, list_partition ...])

list_partition:
 	PARTITION partition_name VALUES IN (list_bound_value) [partition_spec_options] 

# 二級分區的List/List Columns分區定義
list_subpartition_list:
	(list_subpartition [, list_subpartition ...])

list_subpartition:
	SUBPARTITION subpartition_name VALUES IN (list_bound_value) [partition_spec_options]

場景1:目標分區是不含二級分區的一級分區

示例1:增加一個RANGE一級分區

假設r_t1與r_t2都采用Range分區,建表SQL如下所示:

CREATE TABLE `r_t1` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`)) 
(
 PARTITION p0 VALUES LESS THAN (2020),
 PARTITION p1 VALUES LESS THAN (2021)
);

CREATE TABLE `r_t2` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`)) 
(
 PARTITION p0 VALUES LESS THAN (2020),
 PARTITION p1 VALUES LESS THAN (2021)
);

現在給r_t1表增加一個新的Range分區,新的Range的分區定義是PARTITION p2 VALUES LESS THAN (2022),具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE r_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY TABLE r_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

示例2:增加一個LIST一級分區

假如l_t1與l_t2都采用List分區,建表SQL如下所示:

CREATE TABLE `l_t1` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY LIST(YEAR(`c`)) 
(
 PARTITION p0 VALUES IN (2020,2022),
 PARTITION p1 VALUES IN (2021,2023)
);

CREATE TABLE `l_t2` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY LIST(YEAR(`c`)) 
(
 PARTITION p0 VALUES IN (2020,2022),
 PARTITION p1 VALUES IN (2021,2023)
);

給l_t1表增加一個新的List分區,新的List的分區定義是PARTITION p2 VALUES IN (2024),具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE l_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES IN (2024) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD PARTITION ( PARTITION p2 VALUES IN (2024) );

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY TABLE l_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES IN (2024) );

場景2:目標分區是含有二級分區的一級分區

示例1:增加一個一級分區,但同時指定二級分區定義

說明

該種用法僅適用于非模板化的二級分區。

假設r_k_ntp_t1與r_k_ntp_t2都采用Range+Key的非模板化二級分區,建表SQL如下所示:

CREATE TABLE `r_k_ntp_t1` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`)) 
SUBPARTITION BY KEY(a) 
(
 PARTITION p0 VALUES LESS THAN (2020) SUBPARTITIONS 2,
 PARTITION p1 VALUES LESS THAN (2021) SUBPARTITIONS 4
);

CREATE TABLE `r_k_ntp_t2` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`)) 
SUBPARTITION BY KEY(a)
(
 PARTITION p0 VALUES LESS THAN (2020) SUBPARTITIONS 2,
 PARTITION p1 VALUES LESS THAN (2021) SUBPARTITIONS 4
);

現在給r_k_ntp_t1表增加一個新的Range分區,新的Range的分區定義是PARTITION p2 VALUES LESS THAN (2022),同時指定這個新的一級分區的二級分區的分區數目是3,具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE r_k_ntp_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2024) SUBPARTITIONS 3 ) ;

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2024) );

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY TABLE r_k_ntp_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2024) );

示例2:增加一個一級分區,但不指定二級分區定義

說明

該種用法同時適用于模板化二級分區與模板化二級分區。

該種用法與場景1(目標分區是不含二級分區的一級分區)的用法類似。具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE r_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY TABLE r_k_t1 /*表名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

場景3:目標分區是模板化的二級分區

說明

對于模板化二級分區,所有一級分區下的二級分區會同時進行變更。

示例1:增加一個RANGE二級分區

假如k_r_tp_t1與k_r_tp_t2都采用Key+Range的模板化分區,建表SQL如下所示:

CREATE TABLE `k_r_tp_t1` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY KEY(`a`) PARTITIONS 2
SUBPARTITION BY RANGE(YEAR(`c`))
(
 SUBPARTITION sp0 VALUES LESS THAN (2020),
 SUBPARTITION sp1 VALUES LESS THAN (2021)
);

CREATE TABLE `k_r_tp_t2` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY KEY(`a`) PARTITIONS 2
SUBPARTITION BY RANGE(YEAR(`c`))
(
 SUBPARTITION sp0 VALUES LESS THAN (2020),
 SUBPARTITION sp1 VALUES LESS THAN (2021)
);

給k_r_tp_t1表增加一個新的Range二級分區,新的Range二級分區定義是SUBPARTITION sp2 VALUES LESS THAN (2022),具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE k_r_tp_t1 /*表名*/ 
	ADD SUBPARTITION ( SUBPARTITION p2 VALUES LESS THAN (2022) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD SUBPARTITION ( SUBPARTITION p2 VALUES LESS THAN (2022) );

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY TABLE k_r_tp_t1 /*表名*/ 
	ADD SUBPARTITION ( SUBPARTITION p2 VALUES LESS THAN (2022) );

示例2:增加一個LIST二級分區

假如k_l_tp_t1與k_l_tp_t2都采用List分區,建表SQL如下所示:

CREATE TABLE `k_l_tp_t1` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY KEY(`a`) PARTITIONS 2
SUBPARTITION BY LIST(YEAR(`c`)) 
(
 SUBPARTITION sp0 VALUES IN (2020,2022),
 SUBPARTITION sp1 VALUES IN (2021,2023)
);

CREATE TABLE `k_l_tp_t2` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY KEY(`a`) PARTITIONS 2
SUBPARTITION BY LIST(YEAR(`c`)) 
(
 SUBPARTITION sp0 VALUES IN (2020,2022),
 SUBPARTITION sp1 VALUES IN (2021,2023)
);

給k_l_tp_t1表增加一個新的List二級分區,新的List二級分區定義是SUBPARTITION p2 VALUES IN (2024)。具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE k_l_tp_t1 /*表名*/ 
	ADD SUBPARTITION ( SUBPARTITION p2 VALUES IN (2024) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD SUBPARTITION ( SUBPARTITION p2 VALUES IN (2024) );

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY TABLE k_l_tp_t1 /*表名*/ 
	ADD SUBPARTITION ( SUBPARTITION p2 VALUES IN (2024) );

場景4:目標分區是非模板化的二級分區

說明

對于非模板化二級分區,允許單獨對某個一級分區下的二級分區會進行分區變更。

示例1:指定一級分區并增加一個RANGE二級分區

假如l_r_ntp_t1與l_r_ntp_t2都采用List+Range的非模板化分區,建表SQL如下所示:

CREATE TABLE `l_r_ntp_t1` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY LIST(`a`)
SUBPARTITION BY RANGE(YEAR(`c`))
(
 PARTITION p0 VALUES IN (2020,2022) (
 	SUBPARTITION p0sp0 VALUES LESS THAN (2020),
 	SUBPARTITION p0sp1 VALUES LESS THAN (2022)
	),
 PARTITION p1 VALUES IN (2021,2023) (
 	SUBPARTITION p1sp0 VALUES LESS THAN (2021),
 SUBPARTITION p1sp1 VALUES LESS THAN (2023),
 SUBPARTITION p1sp2 VALUES LESS THAN (2025)
	)
);

CREATE TABLE `l_r_ntp_t2` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY LIST(`a`)
SUBPARTITION BY RANGE(YEAR(`c`))
(
 PARTITION p0 VALUES IN (2020,2022) (
 	SUBPARTITION p0sp0 VALUES LESS THAN (2020),
 	SUBPARTITION p0sp1 VALUES LESS THAN (2022)
	),
 PARTITION p1 VALUES IN (2021,2023) (
 	SUBPARTITION p1sp0 VALUES LESS THAN (2021),
 SUBPARTITION p1sp1 VALUES LESS THAN (2023),
 SUBPARTITION p1sp2 VALUES LESS THAN (2025)
	)
);

給l_r_ntp_t1表的一級分區p0單獨增加一個新的Range二級分區,新的Range二級分區定義是SUBPARTITION p0sp2 VALUES LESS THAN (2024)。具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE l_r_ntp_t1 /*表名*/ 
	MODIFY PARTITION p0
	ADD SUBPARTITION ( SUBPARTITION p0sp2 VALUES LESS THAN (2024) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	MODIFY PARTITION p0
	ADD SUBPARTITION ( SUBPARTITION p0sp2 VALUES LESS THAN (2024) );

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY l_r_ntp_t1 /*表名*/ 
	MODIFY PARTITION p0
	ADD SUBPARTITION ( SUBPARTITION p0sp2 VALUES LESS THAN (2024) );

示例2:指定一級分區并增加一個LIST二級分區

假如r_l_ntp_t1與r_l_ntp_t2都采用List+Range非模板化二級分區,建表SQL如下所示:

CREATE TABLE `r_l_ntp_t1` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`))
SUBPARTITION BY LIST(`a`) 
(
 PARTITION p0 VALUES LESS THAN (2020) (
 	SUBPARTITION p0sp0 VALUES IN (2017),
 SUBPARTITION p0sp1 VALUES IN (2018)
 ),
 PARTITION p1 VALUES LESS THAN (2022) (
 	SUBPARTITION p1sp0 VALUES IN (2020),
 SUBPARTITION p1sp1 VALUES IN (2021)
 )
);

CREATE TABLE `r_l_ntp_t2` (
`a` bigint(20) UNSIGNED NOT NULL,
`b` bigint(20) UNSIGNED NOT NULL,
`c` datetime NOT NULL,
`d` varchar(16) NOT NULL,
`e` varchar(16) NOT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`))
SUBPARTITION BY LIST(`a`) 
(
 PARTITION p0 VALUES LESS THAN (2020) (
 	SUBPARTITION p0sp0 VALUES IN (2017),
 SUBPARTITION p0sp1 VALUES IN (2018)
 ),
 PARTITION p1 VALUES LESS THAN (2022) (
 	SUBPARTITION p1sp0 VALUES IN (2020),
 SUBPARTITION p1sp1 VALUES IN (2021)
 )
);

給r_l_ntp_t1表的一級分區p0單獨增加一個新的Range二級分區,新的Range二級分區定義是SUBPARTITION p0sp2 VALUES IN (2019)。具體用法如下所示。

表級用法

## 基于表名字進行表級的分區變更操作
ALTER TABLE r_l_ntp_t1 /*表名*/ 
	MODIFY PARTITION p0
	ADD SUBPARTITION (SUBPARTITION p0sp2 VALUES IN (2020));

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作
ALTER TABLEGROUP tg1 /*表組名*/ 
	MODIFY PARTITION p0
	ADD SUBPARTITION (SUBPARTITION p0sp2 VALUES IN (2020));

## 基于表名進行表組級的分區變更操作(即基于表名自動找查對應的表組并進行操作)
ALTER TABLEGROUP BY TABLE r_l_ntp_t1 /*表名*/ 
	MODIFY PARTITION p0
	ADD SUBPARTITION (SUBPARTITION p0sp2 VALUES IN (2020));

場景5:目標分區是全局索引表的分區

示例1:指定全局索引并增加一個RANGE一級分區

假設r_gr_t1是一個使用全局索引的表,建表SQL如下所示:

CREATE TABLE `r_gr_t1` (
	`a` bigint(20) UNSIGNED NOT NULL,
	`b` bigint(20) UNSIGNED NOT NULL,
	`c` datetime NOT NULL,
	`d` varchar(16) NOT NULL,
	`e` varchar(16) NOT NULL,
	GLOBAL INDEX `g_r` (`a`) COVERING (`c`)
		PARTITION BY RANGE(`a`)
		(PARTITION `p0` VALUES LESS THAN (10000),
		 PARTITION `p1` VALUES LESS THAN (20000)),
	KEY `auto_shard_key_c` USING BTREE (`c`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`))
(PARTITION `p0` VALUES LESS THAN (2020),
 PARTITION `p1` VALUES LESS THAN (2021));

給r_gr_t1表的全局索引g_r增加一個新的Range分區,新的Range的分區定義是PARTITION p2 VALUES LESS THAN (30000)。具體用法如下所示。

表級用法

## 基于 `表名`.`全局索引名` 進行全局索引表的分區變更操作
ALTER TABLE `r_gr_t1`.`g_r`
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (30000) );

## 基于 `全局索引` ON TALBE `表名` 進行全局索引表的分區變更操作
ALTER INDEX g_r/*全局索引名*/ ON TABLE `r_gr_t1` /*表名*/
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (30000) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即上述兩個表同時執行分區變更。

## 基于表組名字進行表組級的分區變更操作,假如全局索引表的表組名是tg1
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

## 基于 `全局索引` ON TALBE `表名` 進行全局索引表的表組的分區變更操作
ALTER TABLEGROUP BY INDEX `g_r`/*全局索引名*/ ON TABLE `r_gr_t1` /*表名*/
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (30000) );

示例2:指定全局索引并增加一個LIST二級分區

假如r_g_kl_t1是一個使用全局索引的分區表,其中全局索引使用Key+List的二級分區,建表SQL如下所示:

CREATE TABLE `r_g_kl_t1` (
	`a` bigint(20) UNSIGNED NOT NULL,
	`b` bigint(20) UNSIGNED NOT NULL,
	`c` datetime NOT NULL,
	`d` varchar(16) NOT NULL,
	`e` varchar(16) NOT NULL,
	GLOBAL INDEX `g_kl` (`a`,`b`) COVERING (`c`)
		PARTITION BY KEY(`b`) PARTITIONS 2
 	SUBPARTITION BY LIST(`a`)
		(SUBPARTITION `sp0` VALUES IN (10000),
		 SUBPARTITION `sp1` VALUES IN (20000))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE(YEAR(`c`))
(PARTITION `p0` VALUES LESS THAN (2020),
 PARTITION `p1` VALUES LESS THAN (2021));

給r_g_kl_t1表的全局索引g_kl增加一個新的LIST二級分區,新增的List的二級分區定義是SUBPARTITION sp2 VALUES IN (30000)。具體用法如下所示。

表級用法

## 基于 `表名`.`全局索引名` 進行全局索引表的分區變更操作
ALTER TABLE `r_g_kl_t1`.`g_kl`
	ADD SUBPARTITION ( SUBPARTITION sp2 VALUES IN (30000) );

## 基于 `全局索引` ON TALBE `表名` 進行全局索引表的分區變更操作
ALTER INDEX g_kl/*全局索引名*/ ON TABLE `r_g_kl_t1` /*表名*/
	ADD SUBPARTITION ( SUBPARTITION sp2 VALUES IN (30000) );

表組級用法

同一個表組的所有邏輯表同時進行增加分區的操作,即修改全局索引所對應的表組的分區定義。

## 基于表組名字進行表組級的分區變更操作,假如全局索引表的表組名是tg1
ALTER TABLEGROUP tg1 /*表組名*/ 
	ADD PARTITION ( PARTITION p2 VALUES LESS THAN (2022) );

## 基于 INDEX `全局索引` ON TALBE `表名` 進行全局索引表的表組的分區變更操作
ALTER TABLEGROUP BY INDEX `g_kl`/*全局索引名*/ ON TABLE `r_g_kl_t1` /*表名*/
		ADD SUBPARTITION ( SUBPARTITION sp2 VALUES IN (30000) );