Todos os produtos
Search
Central de documentação

PolarDB:Distribuição transparente

Última atualização: Jun 28, 2026

Este tópico descreve o conceito de distribuição transparente no PolarDB-X e explica seu funcionamento.

Informações básicas

Quando uma aplicação baseada em um banco de dados MySQL tradicional e independente atinge um gargalo de recursos ou desempenho, a migração para um banco de dados distribuído é uma solução comprovada para atender às demandas do negócio.

No entanto, após essa migração, os usuários frequentemente enfrentam os seguintes desafios ao utilizar o banco de dados distribuído:

  • Como os dados são distribuídos pelo banco de dados?

  • Quais tabelas exigem divisão horizontal? Como particionar uma tabela, quais chaves de partição utilizar e qual é a quantidade ideal de partições?

  • Em quais nós de dados minhas informações estão armazenadas? Como corrigir desequilíbrios de recursos?

Para resolver essas questões, é necessário compreender o funcionamento e os casos de uso dos bancos de dados distribuídos. Utilizá-los corretamente não é uma tarefa simples.

Para facilitar o uso e a transição de bancos de dados independentes para distribuídos, o Alibaba Cloud oferece o recurso de distribuição transparente integrado ao kernel do PolarDB-X 2.0.

Nota

Este recurso é compatível apenas com bancos de dados no modo AUTO.

O que é distribuição transparente?

O recurso de distribuição transparente do PolarDB-X 2.0 fornece políticas padrão de particionamento e distribuição de dados. Isso permite conectar aplicações a bancos de dados distribuídos para obter ganhos de desempenho sem modificar o código da aplicação.

A capacidade central da distribuição transparente consiste em auxiliar na definição do esquema de particionamento das tabelas e na distribuição dos dados entre os nós de dados (DNs) do PolarDB-X.

Para usuários que migram de um banco de dados MySQL tradicional e independente para um banco de dados distribuído PolarDB-X, as instruções SQL para criar tabelas de negócios se enquadram em duas categorias:

  • Categoria um: As instruções SQL não utilizam explicitamente a sintaxe de particionamento do MySQL. As tabelas criadas com essas instruções podem ser chamadas de tabelas MySQL não particionadas.

  • Categoria dois: As instruções SQL utilizam explicitamente a sintaxe de particionamento do MySQL, como instruções que contêm Partition By Hashs(id). As tabelas criadas com essas instruções podem ser chamadas de tabelas MySQL particionadas.

Se você crie tabelas usando uma instrução da categoria dois, considera-se que optou por um esquema de particionamento específico para o seu negócio, já que a instrução emprega explicitamente a sintaxe de particionamento do MySQL. O PolarDB-X também trata essas tabelas como particionadas manualmente. As partições dessas tabelas são distribuídas uniformemente entre os DNs para garantir o equilíbrio de carga.

As tabelas criadas a partir de instruções da categoria um são numerosas e representam o foco principal da distribuição transparente do PolarDB-X, cujo objetivo é ajudar você a escolha os esquemas de particionamento e distribuição de dados mais adequados.

O recurso de distribuição transparente do PolarDB-X oferece três esquemas de particionamento e distribuição de dados para tabelas originadas de instruções da categoria um:

  • Tabela não particionada: Neste esquema, as tabelas MySQL permanecem não particionadas no PolarDB-X, que atribui DNs fixos a elas. Dessa forma, você utiliza as tabelas exatamente como faria com tabelas MySQL tradicionais e independentes.

  • Tabela fragmentada: Neste cenário, as tabelas MySQL continuam não particionadas no PolarDB-X. Contudo, o sistema as fragmenta e distribui automaticamente entre os DNs.

  • Tabela particionada: Aqui, o PolarDB-X particiona automaticamente as tabelas MySQL que originalmente não eram particionadas.

    • As tabelas primárias recebem particionamento HASH horizontal com base nas chaves primárias.

    • Índices globais são aplicados por padrão, e o particionamento horizontal ocorre conforme as colunas de índice.

Portanto, o recurso de distribuição transparente opera em três modos, dependendo do esquema de particionamento e distribuição de dados escolhido:

  • Fragmentação de tabela

  • Particionamento automático

  • Particionamento manual (padrão)

Modos de operação da distribuição transparente

Ao conectar sua aplicação a um banco de dados distribuído, especialmente durante a primeira conexão, escolha o modo de operação que melhor atenda aos requisitos do seu negócio, considerando o esquema de particionamento ou distribuição de dados desejado.

A tabela abaixo detalha os modos de operação, juntamente com suas vantagens e desvantagens:

Modo de operação

Descrição

Vantagens e desvantagens

Fragmentação de tabela

Para todas as tabelas em um banco de dados lógico:

  • Caso uma tabela lógica não utilize explicitamente a sintaxe de particionamento do MySQL, ela não será particionada e será distribuída aleatoriamente entre os DNs do PolarDB-X para balanceamento de carga.

  • Se uma tabela lógica usar explicitamente a sintaxe de particionamento do MySQL, ela será particionada e cada partição será distribuída uniformemente entre os DNs.

Vantagens:

  • Facilidade de uso, sem necessidade de modificar a aplicação.

  • Maior compatibilidade com SQL.

  • Desempenho de consulta SQL muito próximo ao do MySQL.

Desvantagens:

  • Possível desequilíbrio de carga entre os DNs devido à variação na frequência de acesso às tabelas e na quantidade de linhas verificadas.

Particionamento automático

Quando as tabelas de um banco de dados lógico não usam explicitamente a sintaxe de particionamento do MySQL:

  • O sistema particiona automaticamente as tabelas na horizontal com base em suas chaves primárias.

  • Índices globais são utilizados automaticamente, e o particionamento horizontal ocorre com base nas colunas de índice.

Vantagens:

  • Simplicidade de uso, exigindo alterações mínimas ou nulas na aplicação.

  • Escalabilidade horizontal.

Desvantagens:

  • Redução no throughput de escrita devido à necessidade de manter múltiplos índices globais.

  • Desequilíbrio de carga entre DNs e escalabilidade reduzida causados pela variação de hot spots nos índices globais.

Particionamento manual (padrão)

Para todas as tabelas em um banco de dados lógico:

  • Se uma tabela lógica não utilizar explicitamente a sintaxe de particionamento do MySQL, o sistema a tratará como uma tabela não particionada e a atribuirá ao mesmo DN.

  • Quando uma tabela lógica usa explicitamente a sintaxe de particionamento do MySQL, ela é particionada e cada partição é distribuída uniformemente entre os DNs.

Vantagens:

  • Adaptabilidade a diversos cenários de negócios.

  • Oferece desempenho otimizado, balanceamento de carga e escalabilidade linear.

Desvantagens:

  • Maior complexidade de entendimento e utilização.

  • Exige modificações na aplicação.

Nota

É possível combinar os três modos de operação. Por exemplo, utilize o particionamento manual junto com a fragmentação de tabela ou o particionamento automático para atender a múltiplos requisitos simultaneamente.

Para mais detalhes sobre os cenários recomendados para cada modo, consulte Melhores práticas.