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.
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.
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
-
Crie um banco de dados no modo AUTO:
CREATE DATABASE autodb2 MODE='AUTO'; -
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
idem 16 partições.O índice comum
idx_namefoi convertido em um índice global, particionado pornameeid.
Próximos passos
Melhores práticas para bancos de dados distribuídos transparentes — orientações sobre quando utilizar particionamento automático ou manual em produção.