Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Execute hints on an ApsaraDB RDS for MySQL instance

Última atualização: Jun 26, 2026

Em um cenário de read/write splitting, o proxy distribui automaticamente as consultas entre as instâncias primária e secundária. Os hints permitem substituir esse roteamento para consultas específicas: direcionar uma única consulta à instância primária para obter resultados atualizados, descarregar leituras pesadas para uma instância secundária ou apontar comandos de diagnóstico para uma instância específica por nome.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um endpoint de roteamento de read/write splitting configurado para sua instância ApsaraDB RDS. Para mais detalhes, consulte O que é read/write splitting?

Requisito da CLI do MySQL

Ao se conectar com a CLI do MySQL, use o parâmetro -c para impedir que o cliente remova os hints baseados em comentários:

mysql -c -h <endpoint> -u <username> -p

Sem o parâmetro -c, a CLI do MySQL remove todos os hints de comentário SQL antes que eles cheguem ao proxy.

Referência de sintaxe de hints

Todos os hints usam o formato padrão de comentário de bloco SQL (/* ... */) e devem aparecer imediatamente antes da instrução de destino.

Nota

Os hints ignoram restrições de consistência e transação e têm a maior prioridade de roteamento. Avalie suas cargas de trabalho antes de usar hints. Eles não podem incluir instruções que reconfigurem variáveis de ambiente. Por exemplo, /*FORCE_SLAVE*/ SET NAMES utf8; não é permitido e pode causar erros.

Roteamento para a primária: /*FORCE_MASTER*/

Força o envio da consulta para a instância ApsaraDB RDS primária. Use esta opção quando precisar de dados atualizados logo após uma escrita, como em situações em que o atraso de replicação nas instâncias secundárias retornaria resultados desatualizados.

/*FORCE_MASTER*/ SELECT * FROM orders WHERE order_id = 12345;

Roteamento para a secundária: /*FORCE_SLAVE*/

Direciona a consulta para uma instância ApsaraDB RDS secundária. Use este método para aliviar a carga de consultas intensivas em leitura da instância primária.

/*FORCE_SLAVE*/ SELECT COUNT(*) FROM logs WHERE created_at > '2026-01-01';

Roteamento para uma instância específica: /*force_node='<instance-id>'*/

Encaminha uma única consulta para a instância especificada pelo ID. Se a instância estiver indisponível, a consulta falhará com a mensagem:

force hint server node is not found, please check.

O exemplo abaixo executa SHOW PROCESSLIST exclusivamente na instância rr-bpxxxxx:

/*force_node='rr-bpxxxxx'*/ SHOW PROCESSLIST;

Roteamento persistente: /*force_proxy_internal*/

Defina uma substituição persistente que encaminha todas as consultas subsequentes para uma instância específica.

/*force_proxy_internal*/SET force_node = 'rr-bpxxxxx';

Após executar essa instrução, toda consulta subsequente na sessão será enviada para rr-bpxxxxx. Se essa instância estiver indisponível, as consultas seguintes falharão com a mensagem:

set force node 'rr-bpxxxxx' is not found, please check.
Aviso

Evite /*force_proxy_internal*/ na maioria dos casos. Esse recurso direciona todo o tráfego seguinte para uma única instância e desativa o read/write splitting. Se você definir o peso de uma instância somente leitura como 0 e depois forçar o roteamento para ela com qualquer hint, o cliente será desconectado dessa instância.

Próximos passos