Todos os produtos
Search
Central de documentação

PolarDB:Separação de leitura e escrita

Última atualização: Aug 27, 2026

PolarDB for MySQL oferece um recurso nativo de separação de leitura e escrita. Sua aplicação precisa se conectar apenas a um único endpoint de cluster em Read/Write (Automatic Read/Write Splitting). O sistema encaminha automaticamente as requisições de escrita para o nó primário. As requisições de leitura são direcionadas ao nó primário ou a um nó somente de leitura, conforme a carga (quantidade atual de requisições não concluídas) de cada nó.

Benefícios

  • Read Consistency

    Quando um cliente se conecta ao backend por meio de um endpoint de cluster, o middleware de separação de leitura e escrita estabelece automaticamente conexões com o nó primário e com cada nó somente de leitura. Dentro de uma única conexão (sessão), o middleware selecione o nó mais adequado ao verificar o status de sincronização de dados de cada nó de banco de dados. Essa abordagem garante resultados corretos (leituras após escritas retornam os dados esperados) e fornece balanceamento de carga para requisições de leitura e escrita.

    示意图

  • Separação nativa de leitura e escrita para melhor desempenho

    Se você criar sua própria camada de proxy na cloud para implementar a separação de leitura e escrita, as requisições precisarão passar por vários componentes para análise e encaminhamento de SQL antes de chegar ao banco de dados, o que aumenta a latência. Em contraste, a separação de leitura e escrita do PolarDB é integrada diretamente ao link de alta segurança existente. Ela não adiciona componentes extras nem sobrecarga, reduzindo a latência e melhorando o throughput.

  • Manutenção simplificada

    No modelo tradicional, é necessário configure os endpoints de conexão do nó primário e de cada nó somente de leitura na sua aplicação. Além disso, você precisa dividir a lógica de negócios para garantir que as requisições de escrita sejam enviadas ao nó primário e as de leitura, a todos os nós.

    O PolarDB fornece um único endpoint de cluster. Após sua aplicação se conectar a esse endpoint, ela poderá execute operações de leitura e escrita nos nós primários e somente de leitura. O encaminhamento das requisições ocorre automaticamente, e a lógica de roteamento é totalmente transparente, o que reduz os custos de manutenção.

    Também é possível aumentar a capacidade de processamento adicionando mais nós somente de leitura, sem precisar alterar sua aplicação.

  • Verificações de integridade dos nós para alta disponibilidade

    O módulo de separação de leitura e escrita verifica automaticamente a integridade de todos os nós do cluster. Se um nó falhar ou sua latência exceder um limiar especificado, o PolarDB interrompe o roteamento de requisições de leitura para esse nó. As requisições são então distribuídas entre os demais nós íntegros. Isso garante que a falha de um único nó somente de leitura não afete sua aplicação. Após a recuperação do nó, o PolarDB o readiciona automaticamente ao pool de roteamento.

  • Uso gratuito, com redução de custos de recursos e manutenção

    O recurso de separação de leitura e escrita é fornecido sem custo adicional.

Lógica de roteamento de requisições

No modo Read/Write, as requisições são roteadas da seguinte forma:

  • Encaminhadas exclusivamente para o nó primário:

    • Todas as operações DML (INSERT, UPDATE, DELETE e SELECT FOR UPDATE)

    • Todas as operações DDL (como criação ou exclusão de bancos de dados e tabelas, alteração de esquemas de tabela e gerenciamento de permissões)

    • Todas as requisições dentro de uma transação quando a divisão de transações está desativada

      Nota

      Para detalhes de roteamento quando a divisão de transações está ativada, consulte transaction splitting.

    • Funções definidas pelo usuário

    • Procedimentos armazenados

    • Instruções LOCK/UNLOCK TABLES

    • Consultas Multi-statement

    • Requisições que utilizam tabelas temporárias

    • SELECT last_insert_id()

    • Todas as consultas e modificações de variáveis de usuário

    • Requisições de dump de binlog

  • Encaminhadas para nós somente de leitura ou para o nó primário:

    Nota

    As requisições são encaminhadas para o nó primário somente quando Primary Node Accepts Read Requests estiver defina como Yes.

    • Requisições de leitura fora de uma transação

    • Transações somente de leitura (START TRANSACTION READ ONLY)

  • Sempre encaminhadas para todos os nós:

    • Todas as alterações em variáveis de sistema

    • O comando USE

    • Os comandos PREPARE e DEALLOCATE PREPARE

    • Comandos como COM_CHANGE_USER, COM_RESET_CONNECTION, COM_QUIT e COM_SET_OPTION

    • SHOW PROCESSLIST

      Nota

      Ao execute o comando SHOW PROCESSLIST, o PolarDB retorna informações da lista de processos de todos os nós.

    • KILL (a instrução KILL em SQL, não o comando KILL da linha de comando)

No modo Read Only, as requisições são roteadas da seguinte forma:

  • Operações DDL e DML não são permitidas.

  • Todas as requisições de leitura são encaminhadas para nós somente de leitura com balanceamento de carga.

  • Requisições de leitura nunca são encaminhadas ao nó primário, mesmo que ele tenha sido adicionado aos nós de service.

  • O PolarDB fixa um dump de binlog em um nó somente de leitura específico.

Recursos

A separação de leitura e escrita do PolarDB inclui os seguintes recursos: