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.
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 |
Para todas as tabelas em um banco de dados lógico:
| Vantagens:
Desvantagens:
| |
Quando as tabelas de um banco de dados lógico não usam explicitamente a sintaxe de particionamento do MySQL:
| Vantagens:
Desvantagens:
| |
Particionamento manual (padrão) | Para todas as tabelas em um banco de dados lógico:
| Vantagens:
Desvantagens:
|
É 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.