Todos os produtos
Search
Central de documentação

PolarDB:Automatic partitioning

Última atualização: Jun 28, 2026

Ao migrar uma aplicação MySQL para o PolarDB-X, reescrever instruções DDL para adicionar chaves de partição explícitas pode exigir alterações significativas no código. O particionamento automático elimina essa sobrecarga: o PolarDB-X particiona todas as tabelas em um banco de dados no modo AUTO pela chave primária e converte índices comuns em índices globais, sem necessidade de modificar as instruções DDL do MySQL.

Nota

Não é possível alterar manualmente a quantidade de partições definida pelo particionamento automático.

Como funciona

Com o particionamento automático ativado, o PolarDB-X aplica as seguintes regras a todas as tabelas não particionadas criadas no banco de dados:

  • O sistema particiona as tabelas horizontalmente pela chave primária. Se a tabela não tiver chave primária, o PolarDB-X cria uma chave primária implícita chamada _drds_implicit_id_ e a utiliza como chave de partição.

  • Todos os índices comuns são convertidos em índices globais e particionados pelas colunas do índice.

image

Quando usar o particionamento automático

O particionamento automático é ideal para novas aplicações migradas de um MySQL standalone que precisam escalar rapidamente com mudanças mínimas no código. Esse recurso é recomendado quando:

  • A aplicação executa principalmente consultas pontuais por chave primária.

  • A carga de trabalho envolve poucas tabelas com padrões de consulta simples.

  • A velocidade de lançamento é mais importante que o throughput máximo de escrita.

Quando não usar: A conversão de índices comuns em índices globais introduz transações distribuídas para manter a consistência entre as tabelas de índice global e as tabelas primárias, o que aumenta a latência de escrita. Se sua aplicação for intensiva em escritas ou exigir alto desempenho de escrita, utilize o particionamento manual com chaves de partição explícitas.

Ative o particionamento automático

Antes de começar

  • O banco de dados deve estar no modo AUTO. Apenas bancos de dados no modo AUTO suportam particionamento automático.

  • Por padrão, bancos de dados no modo AUTO utilizam particionamento manual. Para ativar o particionamento automático, defina explicitamente o parâmetro global.

Ative o particionamento automático

  1. Crie um banco de dados no modo AUTO:

    CREATE DATABASE autodb2 MODE='AUTO';
  2. Ative o particionamento automático para o banco de dados:

    SET GLOBAL AUTO_PARTITION = true;

    Após essa configuração entrar em vigor, o PolarDB-X particiona automaticamente todas as tabelas não particionadas criadas no banco de dados.

Verifique o particionamento automático

Crie uma tabela com uma chave primária e um índice secundário:

CREATE TABLE auto_t1(
  id BIGINT NOT NULL auto_increment,
  bid INT,
  name VARCHAR(30),
  birthday datetime,
  PRIMARY KEY(id),
  INDEX idx_name(name)
);

Inspecione a DDL completa gerada pelo PolarDB-X:

SHOW FULL CREATE TABLE auto_t1;

Saída esperada:

CREATE PARTITION TABLE `auto_t1` (
    `id` bigint NOT NULL AUTO_INCREMENT,
    `bid` int DEFAULT NULL,
    `name` varchar(30) DEFAULT NULL,
    `birthday` datetime DEFAULT NULL,
    PRIMARY KEY (`id`),
    GLOBAL INDEX /* idx_name_$578c */ `idx_name` (`name`)
        PARTITION BY KEY(`name`,`id`)
        PARTITIONS 16,
    LOCAL KEY `_local_idx_name` (`name`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_0900_ai_ci
PARTITION BY KEY(`id`)
PARTITIONS 16

A saída confirma que:

  • A tabela foi particionada pela chave primária id em 16 partições.

  • O índice comum idx_name foi convertido em um índice global, particionado por name e id.

Próximos passos