Todos os produtos
Search
Central de documentação

PolarDB:Usar sintaxe HINT

Última atualização: Jun 28, 2026

Os hints SQL permitem substituir as decisões padrão de roteamento de um endpoint de cluster configurado com Read/Write (Automatic Read/Write Splitting). Os hints possuem a maior prioridade de roteamento e ignoram tanto os níveis de consistência quanto a divisão de transações. Avalie o impacto antes de utilizá-los em produção.

Limites

Os hints funcionam apenas em endpoints de cluster cujo modo de leitura/gravação está definido como Read/Write (Automatic Read/Write Splitting). Eles não são suportados em endpoints de cluster ou endpoints primários configurados como Read-only.

Para obter detalhes sobre os modos de leitura/gravação dos endpoints, consulte a seção "Modos de leitura/gravação para endpoints de cluster" em Endpoints.

Hints disponíveis

Hint

Roteia para

Uso típico

/*FORCE_MASTER*/

Nó primário

Força uma leitura a ser executada no nó primário

/*FORCE_SLAVE*/

Nó somente leitura

Direciona uma instrução para um nó somente leitura em um endpoint de leitura/gravação

/*force_node='<Node ID>'*/

Nó específico (instrução única)

Depura ou inspeciona um nó específico

/*force_proxy_internal*/set force_node = '<Node ID>'

Nó específico (todas as instruções subsequentes)

Fixa uma sessão em um nó — use com cautela

/*force_all*/

Todos os nós

Consulta tabelas do sistema em todo o cluster

/*FORCE_IMCI_NODES*/

Nós de column store

Força consultas analíticas para nós In-Memory Column Index (IMCI)

Os hints não diferenciam maiúsculas de minúsculas e devem ser posicionados antes da instrução SQL.
Ao executar hints a partir do cliente de linha de comando do MySQL, utilize o sinalizador -c (ou --comments ). Sem ele, o cliente remove o hint antes de enviar a consulta ao servidor. Consulte Opções do cliente MySQL .

Uso

/*FORCE_MASTER*/ — rotear para o nó primário

Adicione este hint antes de qualquer instrução SQL para enviá-la ao nó primário, independentemente da lógica de roteamento padrão.

/*FORCE_MASTER*/ SELECT * FROM test;

Sem o hint, SELECT * FROM test é roteado para um nó somente leitura. Com o hint, a execução ocorre no nó primário.

Este hint não tem efeito em endpoints configurados como Read-only — a instrução não é redirecionada para o nó primário.

/*FORCE_SLAVE*/ — rotear para um nó somente leitura

Utilize este hint para enviar explicitamente uma instrução a um nó somente leitura.

/*FORCE_SLAVE*/ SELECT * FROM orders WHERE status = 'shipped';
Importante

Não combine hints com instruções que alteram variáveis de sessão. Por exemplo, /*FORCE_SLAVE*/ SET NAMES utf8; pode causar erros.

/*force_node='<Node ID>'*/ — direcionar a um nó específico (instrução única)

Aplique este hint para executar uma única instrução SQL no nó especificado.

/*force_node='pi-bpxxxxxxxx'*/ SHOW PROCESSLIST;

Caso o nó especificado esteja indisponível, o seguinte erro será retornado:

force hint server node is not found, please check.

/*force_proxy_internal*/set force_node — fixar uma sessão em um nó específico

Execute esta instrução para rotear todas as instruções SQL subsequentes da sessão para um nó específico.

/*force_proxy_internal*/set force_node = 'pi-bpxxxxxxxx';

Se o nó falhar, o seguinte erro será retornado:

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

Evite usar /*force_proxy_internal*/ a menos que haja um motivo específico para fixar a sessão. Esse recurso desativa a divisão de leitura/gravação para todas as instruções subsequentes na conexão.

/*force_all*/ — transmitir para todos os nós

Inclua este hint para transmitir uma instrução para cada nó do cluster.

/*force_all*/ SELECT * FROM information_schema.processlist;
O uso de /*force_all*/ requer o PolarProxy 2.8.36 ou posterior. Para verificar e atualizar sua versão do PolarProxy, consulte Atualização de versão secundária .

Os resultados retornados dependem da consulta:

  • Tabelas do sistema (information_schema.processlist, information_schema.innodb_trx, performance_schema.threads, performance_schema.metadata_locks, sys.schema_table_lock_waits): o PolarProxy transmite a instrução para todos os nós e retorna o resultado mesclado.

  • Todas as outras tabelas e cenários: apenas os resultados do banco de dados primário são retornados.

Sem o hint, SELECT * FROM information_schema.processlist é roteado para um nó aleatório.

/*FORCE_IMCI_NODES*/ — rotear para nós de column store

Caso você tenha ativado a distribuição automática de solicitações entre nós de row store e column store, adicione este hint para forçar a execução de uma consulta nos nós de column store IMCI (In-Memory Column Index).

/*FORCE_IMCI_NODES*/ SELECT * FROM large_analytics_table;

Para mais detalhes sobre a configuração, consulte Distribuição automática de solicitações entre nós de row store e column store.