Todos os produtos
Search
Central de documentação

PolarDB:Subparticionamento do PolarDB-X

Última atualização: Jun 28, 2026

O subparticionamento, também chamado de particionamento composto, divide cada partição de uma tabela do PolarDB-X em subpartições menores. Cada partição funciona como uma unidade lógica, e cada subpartição mapeia para uma tabela física em um nó de dados.

Assim como o MySQL, o PolarDB-X oferece suporte ao subparticionamento (ou particionamento composto), que fragmenta cada partição de uma tabela particionada em subpartições menores. Uma tabela particionada com subpartições apresenta as seguintes características:

  • Cada partição torna-se uma partição lógica, composta por um conjunto de subpartições.

  • Cada subpartição atua como uma partição física, correspondendo a uma tabela física específica em um nó de dados.

Versões compatíveis

A versão da instância deve ser 5.4.17-16952556 ou posterior.

Nota

Relações ortogonais entre partições e subpartições

O PolarDB-X suporta sete políticas de particionamento tanto para partições quanto para subpartições:

As partições e subpartições do PolarDB-X são totalmente ortogonais. Você pode combinar livremente quaisquer duas dessas políticas, resultando em até 49 políticas de particionamento composto.

Subparticionamento com modelo e sem modelo

O PolarDB-X oferece dois modos para definir subpartições. Todas as 49 políticas de particionamento composto do PolarDB-X suportam ambos os modos.

Subparticionamento com modelo

No subparticionamento com modelo, todas as partições compartilham a mesma quantidade de subpartições e os mesmos valores de limite. Defina a estrutura de subpartições uma única vez na cláusula SUBPARTITION BY; ela se aplica automaticamente a todas as partições.

O exemplo a seguir cria três partições LIST COLUMNS, cada uma com quatro subpartições KEY. Total de partições físicas: 3 × 4 = 12.

/*
 * Templated subpartitioning: LIST COLUMNS + KEY.
 * Three partitions x four subpartitions = 12 physical partitions.
 */
CREATE TABLE sp_tbl_list_key_tp(
  id int,
  country varchar(64),
  city varchar(64),
  order_time datetime not null,
  PRIMARY KEY(id)
)
PARTITION BY LIST COLUMNS(country, city)
SUBPARTITION BY KEY(id) SUBPARTITIONS 4
(
  PARTITION p1 VALUES IN (('China','Hangzhou')),
  PARTITION p2 VALUES IN (('Russian','Moscow')),
  PARTITION pd VALUES IN (DEFAULT)
);

Adicione SUBPARTITIONS N após SUBPARTITION BY para estabelecer uma contagem uniforme de subpartições para todas as partições.

Subparticionamento sem modelo

No subparticionamento sem modelo, cada partição especifica sua própria quantidade de subpartições e valores de limite. Utilize este modo quando as partições exigirem números diferentes de subpartições ou valores de limite distintos.

O exemplo abaixo cria três partições LIST COLUMNS com 2, 3 e 4 subpartições KEY, respectivamente. Total de partições físicas: 2 + 3 + 4 = 9.

/*
 * Non-templated subpartitioning: LIST COLUMNS + KEY.
 * p1: 2 subpartitions, p2: 3 subpartitions, pd: 4 subpartitions = 9 physical partitions.
 */
CREATE TABLE sp_tbl_list_key_ntp(
  id int,
  country varchar(64),
  city varchar(64),
  order_time datetime not null,
  PRIMARY KEY(id)
)
PARTITION BY LIST COLUMNS(country, city)
SUBPARTITION BY KEY(id)
(
  PARTITION p1 VALUES IN (('China','Hangzhou')) SUBPARTITIONS 2,
  PARTITION p2 VALUES IN (('Russian','Moscow')) SUBPARTITIONS 3,
  PARTITION pd VALUES IN (DEFAULT) SUBPARTITIONS 4
);

Inclua SUBPARTITIONS N em cada cláusula PARTITION individual para configurar uma contagem de subpartições específica por partição.