O particionamento manual no PolarDB for Xscale oferece controle explícito sobre a distribuição de dados entre os nós de dados. Essa abordagem é ideal para aplicações essenciais que exigem alta concorrência e throughput, permitindo que você selecione uma estratégia de partição alinhada aos padrões de leitura e escrita da sua carga de trabalho.
O particionamento manual exige familiaridade com o funcionamento de bancos de dados distribuídos. Antes de projetar os schemas das suas tabelas, determine se sua carga de trabalho é intensiva em leitura, em escrita ou mista — essa definição orienta a escolha do tipo de tabela mais adequado.
Crie um banco de dados AUTO
Para utilizar o particionamento manual, crie um banco de dados no modo AUTO:
CREATE DATABASE autodb1 MODE='auto'
Tipos de tabela
O PolarDB for Xscale suporta três tipos de tabela lógica para particionamento manual. Cada um possui uma topologia física distinta e atende a cargas de trabalho específicas.
Escolha o tipo de tabela com base na sua carga de trabalho principal:
Conjuntos de dados pequenos e baixa concorrência — utilize uma tabela não particionada
Leitura intensiva e atualizações raras — utilize uma tabela de broadcast
Grandes volumes de dados com alta concorrência e throughput — utilize uma tabela particionada
|
Tipo de tabela |
Topologia física |
Mais indicado para |
Comportamento de leitura e escrita |
|
Tabela não particionada |
Uma tabela física em um único nó de dados |
Tabelas pequenas com dados limitados e baixa concorrência |
Um único nó de dados processa todas as leituras e escritas. |
|
Tabela de broadcast |
Uma réplica por nó de dados; as réplicas permanecem sincronizadas |
Tabelas de configuração e outros dados lidos frequentemente, mas raramente atualizados |
Balanceamento de carga de leitura: as consultas são distribuídas entre os nós de dados. Amplificação de escrita: cada operação de escrita deve ser propagada para todas as réplicas para manter a consistência. |
|
Tabela particionada |
Múltiplas partições distribuídas entre os nós de dados; cada partição corresponde a uma tabela física |
Grandes conjuntos de dados que demandam alta concorrência e throughput |
As operações de leitura e escrita são direcionadas ao nó de dados de destino com base na coluna chave de partição, distribuindo a carga automaticamente. |
Tabelas de broadcast amplificam cada operação de escrita em todos os nós de dados. Utilize-as apenas para tabelas com alterações pouco frequentes. Para tabelas com escritas frequentes, prefira uma tabela particionada.
Defina a coluna chave de partição com cuidado antes de criar uma tabela particionada. A chave de partição determina qual nó de dados processará cada consulta: filtros baseados na chave de partição direcionam a execução apenas para as partições relevantes, reduzindo significativamente o volume de dados verificados e melhorando o desempenho. Por exemplo, ao particionar uma tabela de pedidos pela coluna customer_id, uma consulta com WHERE customer_id = 42 acessa somente a partição que contém os dados daquele cliente, em vez de varrer todas as partições.
Crie tabelas
Método 1: Especifique explicitamente o tipo de tabela
Crie uma tabela não particionada
Sintaxe
CREATE TABLE xxx (...)
SINGLE
Exemplo
CREATE TABLE sin_tbl(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime,
primary key(id)
)
single ;
Crie uma tabela de broadcast
Sintaxe
CREATE TABLE xxx (...)
BROADCAST
Exemplo
CREATE TABLE bro_tbl(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime,
primary key(id)
)
broadcast ;
Crie uma tabela particionada
Para consultar a sintaxe completa e as opções disponíveis, consulte Criar manualmente uma tabela particionada (modo AUTO).
Método 2: Desative o particionamento automático globalmente
Por padrão, o PolarDB for Xscale particiona automaticamente novas tabelas. Para criar tabelas não particionadas sem precisar especificar SINGLE a cada vez, desative esse comportamento por meio de uma variável global:
SET GLOBAL AUTO_PARTITION=false;
Após definir essa variável, novas tabelas serão criadas como não particionadas por padrão, tornando opcional o uso da palavra-chave SINGLE.