Todos os produtos
Search
Central de documentação

ApsaraDB RDS:O que é separação de leitura e escrita?

Última atualização: Jun 26, 2026

A separação de leitura e escrita encaminha solicitações de escrita para a instância primária e solicitações de leitura para instâncias somente leitura por meio de um único endpoint de proxy de banco de dados. Utilize este recurso quando sua carga de trabalho tiver significativamente mais leituras do que escritas e a instância primária não conseguir mais lidar sozinha com o volume de leitura.

Conecte sua aplicação a um único endpoint do proxy de banco de dados em vez de gerenciar endpoints separados para a instância primária e para cada instância somente leitura. O proxy cuida de todo o roteamento automaticamente.

image

Quando usar a separação de leitura e escrita

A separação de leitura e escrita é indicada se você enfrentar qualquer uma das situações abaixo:

  • Cargas de trabalho com predominância de leitura: Sua aplicação executa muito mais consultas SELECT do que operações INSERT, UPDATE ou DELETE.

  • Gargalo na instância primária: A CPU ou a E/S da instância primária está saturada pelo tráfego de leitura, mesmo que o volume de escrita seja gerenciável.

  • Dimensionamento de leitura sem alteração de conexões: Adicione capacidade de leitura sem modificar a lógica de conexão da sua aplicação.

Benefícios

  • Endpoint único, sem código de roteamento: Conecte-se uma única vez ao endpoint do proxy de banco de dados. O proxy encaminha as escritas para a instância primária e distribui as leituras entre as instâncias somente leitura automaticamente, eliminando a necessidade de manter strings de conexão separadas por instância.

  • Menor latência em comparação a um proxy autoconstruído: A separação de leitura e escrita está integrada ao ecossistema do ApsaraDB RDS. Os dados não passam por camadas intermediárias adicionais, o que reduz a latência de resposta em comparação à criação de um proxy próprio na nuvem.

  • Pesos de leitura e limiar de latência configuráveis: Especifique um peso de leitura para cada instância a fim de controlar a distribuição das solicitações de leitura. Defina um limiar de latência de replicação para excluir automaticamente do pool de leitura as instâncias somente leitura com atraso.

  • Verificação de integridade e failover automáticos: O proxy monitora continuamente cada instância. Se uma instância somente leitura falhar ou se sua latência de replicação exceder o limiar, o proxy interrompe o roteamento de leituras para ela e redistribui essas solicitações para instâncias íntegras. Após a recuperação da instância, o roteamento é retomado automaticamente.

Crie pelo menos duas instâncias somente leitura para evitar um ponto único de falha (SPOF).

Pré-requisitos

Antes de ativar a separação de leitura e escrita, certifique-se de ter:

  • Uma instância do ApsaraDB RDS for MySQL executando a RDS High-availability Edition ou a RDS Cluster Edition

  • Para a RDS High-availability Edition: pelo menos uma instância somente leitura criada (recomenda-se duas ou mais)

  • Para a RDS Cluster Edition: nenhuma instância somente leitura é necessária — o nó secundário pode ser acessado e processa apenas solicitações de leitura

A separação de leitura e escrita não é suportada na RDS Basic Edition .

Como funciona

Após ativar o recurso de proxy de banco de dados, a separação de leitura e escrita torna-se ativa automaticamente, sem necessidade de configuração adicional. Acesse Database Proxy no painel de navegação à esquerda da página de instance details para obter o endpoint do proxy de banco de dados (anteriormente chamado de terminal de proxy) e atualize a string de conexão da sua aplicação para utilizá-lo.

Roteamento de solicitações

O proxy dedicado roteia cada solicitação com base em seu tipo:

Instância primária do RDS

  • Instruções de escrita: INSERT, UPDATE, DELETE, SELECT FOR UPDATE

  • Todas as operações DDL (criação ou exclusão de bancos de dados/tabelas, alterações de esquema e permissões)

  • Todas as solicitações dentro de transações (a menos que o recurso de separação de transações esteja ativado)

  • Transações não somente leitura no nível de isolamento Repeatable Read (RR) e superiores

  • Funções definidas pelo usuário e procedimentos armazenados

  • Consultas com múltiplas instruções

  • Tabelas temporárias criadas explicitamente

  • SELECT last_insert_id()

  • Consultas e atualizações de variáveis de usuário

  • Instruções KILL em SQL (diferentes dos comandos KILL), LOCK TABLE, UNLOCK TABLE

  • Instruções FLUSH, incluindo FLUSH TABLES WITH READ LOCK (FTWRL)

  • SAVEPOINT

Instância primária do RDS ou instância somente leitura do RDS

  • Instruções SELECT fora de transações

  • START TRANSACTION READ ONLY

Todas as instâncias do RDS

  • Atualizações de variáveis de sistema

  • Instruções USE

  • SHOW PROCESSLIST — o proxy dedicado agrega e retorna processos de todas as instâncias

  • NAMED PREPARE

  • COM_CHANGE_USER, COM_QUIT, COM_SET_OPTION

Comportamento dos atributos de leitura e escrita

O endpoint do proxy de banco de dados suporta dois modos de atributos de leitura e escrita. A tabela abaixo mostra como cada modo se comporta em condições normais e quando as instâncias somente leitura ficam indisponíveis.

Atributos de leitura e escrita Método de peso de leitura Peso da instância primária Normal Após a exclusão da última instância somente leitura Após falha de todas as instâncias somente leitura
Read-only Automático ou Personalizado Não pode ser especificado Primária: nenhuma solicitação. Proxy: apenas solicitações de leitura. Primária: nenhuma solicitação. Proxy: erro de conexão. Primária: nenhuma solicitação. Proxy: erro de conexão.
Read and write Automático 0 (consulte Regras de alocação de peso de leitura pelo sistema) Primária: apenas solicitações de escrita. Proxy: solicitações de leitura e escrita. Primária: solicitações de leitura e escrita. Proxy: solicitações de leitura e escrita. Primária: solicitações de leitura e escrita. Proxy: solicitações de leitura e escrita.
Personalizado Maior que 0 Primária: solicitações de leitura e escrita. Proxy: solicitações de leitura e escrita. Primária: solicitações de leitura e escrita. Proxy: solicitações de leitura e escrita. Primária: solicitações de leitura e escrita. Proxy: solicitações de leitura e escrita.
0 Primária: apenas solicitações de escrita. Proxy: solicitações de leitura e escrita. Primária: solicitações de leitura e escrita. Proxy: solicitações de leitura e escrita. Primária: solicitações de leitura e escrita. Proxy: solicitações de leitura e escrita.
Nenhuma solicitação na primária : A instância primária não participa do encaminhamento de solicitações somente leitura.
Erro de conexão : Ocorre um erro de conexão quando o endpoint do proxy não possui instâncias disponíveis para roteamento.
No modo Read and write com o peso da primária definido como 0, as solicitações de leitura são direcionadas às instâncias somente leitura por padrão. Exceções: todas as instâncias somente leitura estão com falha, uma dica forçada foi especificada ou a separação de transações está ativada.
Para detalhes de configuração, consulte Configurar os atributos de leitura e escrita e pesos de leitura .

Próximos passos

Após ativar a separação de leitura e escrita, você pode:

Referências