Todos os produtos
Search
Central de documentação

PolarDB:Particionamento RANGE COLUMNS

Última atualização: Jun 28, 2026

O particionamento RANGE COLUMNS estende o particionamento RANGE padrão com dois recursos principais: suporte a múltiplas colunas de partição e tipos de dados não inteiros, incluindo strings, DATE e DATETIME. Use esse método quando o particionamento RANGE apenas para inteiros ou de coluna única não atender às suas necessidades de distribuição de dados.

Para obter uma comparação completa, consulte a visão geral dos tipos de partição.

Sintaxe

CREATE TABLE ...
PARTITION BY RANGE COLUMNS (partition_column_list) [PARTITIONS number]
(
  PARTITION part_name VALUES LESS THAN (range_bound_value_list),
  PARTITION part_name VALUES LESS THAN (range_bound_value_list),
  ...
)

partition_column_list:
  partition_column[, partition_column, ...]

range_bound_value_list:
  range_bound_value[, range_bound_value, ...]

Os limites das partições devem ser estritamente crescentes. Use MAXVALUE como limite superior da última partição para abranger todas as linhas restantes.

Tipos de dados compatíveis

Categoria de tipo

Tipos compatíveis

Tipos inteiros

BIGINT, BIGINT UNSIGNED, INT, INT UNSIGNED, MEDIUMINT, MEDIUMINT UNSIGNED, SMALLINT, SMALLINT UNSIGNED, TINYINT, TINYINT UNSIGNED

Tipos de data e hora

DATETIME, DATE

Tipos de string

CHAR, VARCHAR

Tipo de ponto fixo

DECIMAL (dígitos fracionários devem ser 0)

Limitações

Limite

Valor padrão

Funções de particionamento

Não compatível — especifique os nomes das colunas diretamente

Máximo de partições por tabela

8.192

Máximo de colunas por chave de partição

5

Comprimento máximo do nome da partição

16 caracteres (deve ser único)

Exemplos

Particionamento por chave composta (data e ID)

Particione os registros usando uma chave composta de birthday e id para crie intervalos baseados em ano, com um subintervalo baseado em ID dentro de cada ano:

CREATE TABLE tb_rc(
  id BIGINT NOT NULL AUTO_INCREMENT,
  bid INT,
  name VARCHAR(30),
  birthday DATETIME NOT NULL,
  PRIMARY KEY(id)
)
PARTITION BY RANGE COLUMNS(birthday, id)
(
  PARTITION p1 VALUES LESS THAN('2020-01-01', 1000),
  PARTITION p2 VALUES LESS THAN('2021-01-01', 2000),
  PARTITION p3 VALUES LESS THAN('2022-01-01', 3000),
  PARTITION pm VALUES LESS THAN(MAXVALUE, MAXVALUE)
);

A partição final pm usa MAXVALUE para ambas as colunas e captura todas as linhas que não se enquadram nos limites anteriores.