Todos os produtos
Search
Central de documentação

PolarDB:Introdução a hints

Última atualização: Jun 28, 2026

Os hints SQL personalizados do PolarDB-X 1.0 permitem controlar o roteamento e a execução de instruções SQL individuais em um banco de dados distribuído sem alterar a lógica da aplicação. Este tópico aplica-se ao PolarDB-X 1.0 V5.3 e versões posteriores.

Este tópico aplica-se ao PolarDB-X 1.0 5.3 e versões posteriores.

Como funcionam os hints SQL

O PolarDB-X 1.0 processa os hints SQL incorporados em comentários antes da execução. Um hint é uma string inserida entre /* e */ (ou /! e */) que começa com +TDDL:, seguida por um ou mais comandos de hint:

/*+TDDL: hint_command [hint_command ...]*/
/!+TDDL: hint_command [hint_command ...]*/

Cada hint_command direciona um comportamento específico, como rotear para um shard de banco de dados, habilitar a divisão de leitura e escrita ou definir um tempo limite. Separe múltiplos comandos de hint com espaços.

Examples

-- Query the names of physical tables in each database shard.
/*+TDDL:scan()*/SHOW TABLES;

-- Route the query to database shard 0000 of a read-only ApsaraDB RDS instance.
/*+TDDL:node(0) slave()*/SELECT * FROM t1;

Nos exemplos, /*+TDDL:scan()*/ e /*+TDDL:node(0) slave()*/ são hints personalizados iniciados com +TDDL:. Os comandos scan(), node(0) e slave() estão separados por espaços.

Formatos de sintaxe

O PolarDB-X 1.0 oferece suporte a dois formatos de sintaxe:

Formato

Quando usar

/*+TDDL:hint_command*/

Uso geral. Exige a flag -c na conexão com o cliente de linha de comando do MySQL.

/!+TDDL:hint_command*/

Use quando não for possível passar -c para o cliente MySQL. O cliente preserva este formato.

Importância da flag -c

O MySQL trata o formato /*...*/ como um comentário padrão. Por padrão, o cliente de linha de comando do MySQL remove comentários antes de enviar a instrução SQL ao servidor e ignora o hint. Adicione -c ao comando de login para preservar os hints:

mysql -h <host> -P <port> -u <username> -p -c

Para obter detalhes, consulte Comentários do MySQL e Opções do cliente mysql.

Onde posicionar um hint na instrução SQL

O PolarDB-X 1.0 aceita hints em instruções DML (Data Manipulation Language), DDL (Data Definition Language) e DAL (Data Access Language).

Posicione o hint antes da instrução ou após a primeira palavra-chave:

-- Before the statement
/*+TDDL: ... */ SELECT ...
/*+TDDL: ... */ INSERT ...
/*+TDDL: ... */ REPLACE ...
/*+TDDL: ... */ UPDATE ...
/*+TDDL: ... */ DELETE ...
/*+TDDL: ... */ CREATE TABLE ...
/*+TDDL: ... */ ALTER TABLE ...
/*+TDDL: ... */ DROP TABLE ...
/*+TDDL: ... */ SHOW ...

-- After the first keyword
SELECT /*+TDDL: ... */ ...
INSERT /*+TDDL: ... */ ...
REPLACE /*+TDDL: ... */ ...
UPDATE /*+TDDL: ... */ ...
DELETE /*+TDDL: ... */ ...
Hints diferentes aplicam-se a tipos distintos de instruções. Verifique o tópico de cada comando de hint para confirmar as instruções compatíveis.

Restrições ao usar múltiplos hints

Combine vários comandos dentro de um único hint. Não use hints separados na mesma instrução.

-- Correct: two commands in one hint
SELECT /*+TDDL:node(0) slave()*/ * FROM orders;

-- Incorrect: two separate hints in one statement
SELECT /*+TDDL:node(0)*/ /*+TDDL:slave()*/ * FROM orders;

-- Incorrect: duplicate commands in one hint
SELECT /*+TDDL:node(0) node(1)*/ * FROM orders;

Categorias de hints disponíveis

Os hints SQL personalizados do PolarDB-X 1.0 dividem-se em quatro categorias, cada uma atuando em um ponto de controle diferente durante a execução da consulta:

Solução de problemas

Hints ignorados

Geralmente, o cliente de linha de comando do MySQL remove os comentários /*...*/. Mude para o formato /!+TDDL:...*/ ou reconecte-se com a flag -c:

mysql -h <host> -P <port> -u <username> -p -c

Próximos passos