Todos os produtos
Search
Central de documentação

PolarDB:Read/write splitting

Última atualização: Jun 28, 2026

Quando um único nó primário não suporta a carga de leitura, os clusters do PolarDB for MySQL distribuem automaticamente as solicitações de leitura entre vários nós. Conecte-se a um endpoint de cluster no modo Read/Write (Automatic Read/Write Splitting). Nesse cenário, o sistema encaminha as solicitações de escrita ao nó primário e distribui as de leitura entre o nó primário e os nós somente leitura, com base na quantidade de solicitações pendentes em cada nó. O recurso de separação de leitura e escrita é gratuito.

Diagram

Quando usar a separação de leitura e escrita

A separação de leitura e escrita é recomendada nas seguintes situações:

  • Cargas de trabalho com predominância de leitura: sua aplicação executa muito mais leituras do que escritas (como relatórios, análises ou buscas) e um único nó não suporta a demanda de leitura.

  • Dimensionamento sem alterações de código: você precisa aumentar a capacidade de leitura adicionando mais nós somente leitura, sem atualizar strings de conexão ou a lógica da aplicação.

  • Alta disponibilidade para leituras: as leituras devem continuar mesmo se um nó somente leitura falhar, com failover automático para nós íntegros.

Como funciona

Um proxy de banco de dados integrado, implantado nos links seguros existentes, gerencia todo o roteamento. Quando uma aplicação se conecta por meio do endpoint de cluster, o proxy estabelece conexões tanto com o nó primário quanto com os nós somente leitura. Em cada sessão de conexão, o proxy encaminha cada solicitação ao nó mais adequado conforme o status de sincronização de dados desse nó. Isso garante que as leituras sempre reflitam as escritas mais recentes.

Como o proxy faz parte do link seguro, em vez de ser um componente de nuvem separado, os dados não passam por múltiplas camadas de encaminhamento. Essa arquitetura mantém a latência baixa em comparação com soluções externas baseadas em proxy para separação de leitura e escrita.

Regras de roteamento de solicitações

O endpoint de cluster opera em dois modos: Read/Write e Read-Only. As tabelas a seguir descrevem o roteamento das solicitações em cada modo.

Modo Read/Write

Destino

Solicitações roteadas

Somente nó primário

Todas as instruções DML: INSERT, UPDATE, DELETE, SELECT FOR UPDATE

Todas as instruções DDL (criar, excluir ou alterar bancos de dados, tabelas, esquemas ou permissões)

Todas as transações quando a separação de transações está desativada

Funções definidas pelo usuário

Procedimentos armazenados

Instruções LOCK TABLES e UNLOCK TABLES

Consultas Multi-statement

Solicitações que envolvem tabelas temporárias

Instruções SELECT last_insert_id()

Consultas ou modificações de variáveis de ambiente do usuário

Instruções BINLOG DUMP

Nó primário ou nós somente leitura

Solicitações de leitura não transacionais (apenas quando Primary Node Accepts Read Requests estiver definido como Yes)

Transações somente leitura usando START TRANSACTION READ ONLY (apenas quando Primary Node Accepts Read Requests estiver definido como Yes)

Todos os nós

Modificações de variáveis de ambiente do sistema

Instruções USE

Instruções PREPARE e DEALLOCATE PREPARE

Instruções COM_CHANGE_USER, COM_RESET_CONNECTION, COM_QUIT e COM_SET_OPTION

Instruções SHOW PROCESSLIST (retorna processos de todos os nós)

Instruções KILL em SQL (não confundir com comandos KILL no Linux)

Para regras de roteamento de transações com a separação de transações ativada, consulte a seção "Transaction splitting" em Balanceamento de carga .

Modo Read-Only

Comportamento

Detalhes

DML e DDL

Não suportado

Solicitações de leitura

Distribuídas entre nós somente leitura no modo de balanceamento de carga

Nó primário

Não utilizado, mesmo que esteja incluído na lista de nós selecionados

BINLOG DUMP

Encaminhado exclusivamente para um nó somente leitura específico

Verificações de integridade dos nós

O módulo de separação de leitura e escrita verifica automaticamente a integridade de todos os nós. Caso um nó apresente falha ou a latência ultrapasse o limiar especificado, o PolarDB interrompe o roteamento de solicitações de leitura para esse nó e as redireciona para nós íntegros. Após a recuperação, o PolarDB reinsere automaticamente o nó no pool de roteamento.

Recursos relacionados

Consulte os recursos abaixo para ajustar o comportamento da separação de leitura e escrita no seu cluster: