Todos los productos
Search
Centro de documentos

PolarDB:Uso de la sintaxis HINT

Última actualización: Sep 05, 2026

Los hints de SQL permiten anular las decisiones de enrutamiento predeterminadas de un endpoint de clúster configurado con Read/Write (Automatic Read/Write Splitting). Los hints tienen la máxima prioridad de enrutamiento y omiten tanto los niveles de consistencia como la división de transacciones. Evalúe el impacto antes de usarlos en producción.

Límites

Los hints solo funcionan en endpoints de clúster cuyo modo de lectura/escritura está configurado como Read/Write (Automatic Read/Write Splitting). No son compatibles con endpoints de clúster ni endpoints principales configurados como Read-only.

Para obtener más información sobre los modos de lectura/escritura de los endpoints, consulte la sección "Read/write modes for cluster endpoints" en Endpoints.

Hints disponibles

Hint

Enruta a

Uso típico

/*FORCE_MASTER*/

Nodo principal

Forzar la ejecución de una lectura en el nodo principal

/*FORCE_SLAVE*/

Nodo de solo lectura

Dirigir una sentencia a un nodo de solo lectura en un endpoint de lectura/escritura

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

Nodo específico (sentencia única)

Depurar o inspeccionar un nodo específico

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

Nodo específico (todas las sentencias posteriores)

Fijar una sesión a un nodo; utilícelo con precaución

/*force_all*/

Todos los nodos

Consultar tablas del sistema en todo el clúster

/*FORCE_IMCI_NODES*/

Nodos de almacenamiento columnar

Dirigir consultas analíticas a nodos de In-Memory Column Index (IMCI)

Los hints no distinguen entre mayúsculas y minúsculas y deben colocarse antes de la sentencia SQL.
Si ejecuta hints desde el cliente de línea de comandos de MySQL, incluya la opción -c (o --comments ). Sin esta opción, el cliente elimina el hint antes de enviar la consulta al servidor. Consulte Opciones del cliente MySQL .

Uso

/*FORCE_MASTER*/ — enrutar al nodo principal

Agregue este hint antes de cualquier sentencia SQL para enviarla al nodo principal, sin importar la lógica de enrutamiento predeterminada.

/*FORCE_MASTER*/ SELECT * FROM test;

Sin el hint, SELECT * FROM test se enruta a un nodo de solo lectura. Con el hint, se ejecuta en el nodo principal.

Este hint no surte efecto en endpoints configurados como Read-only, ya que la sentencia no se redirige al nodo principal.

/*FORCE_SLAVE*/ — enrutar a un nodo de solo lectura

Use este hint para enviar explícitamente una sentencia a un nodo de solo lectura.

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

No combine hints con sentencias que modifiquen variables de sesión. Por ejemplo, /*FORCE_SLAVE*/ SET NAMES utf8; puede provocar errores.

/*force_node='<Node ID>'*/ — dirigir a un nodo específico (sentencia única)

Agregue este hint para ejecutar una sola sentencia SQL en el nodo que especifique.

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

Si el nodo especificado no está disponible, se devuelve el siguiente error:

force hint server node is not found, please check.

/*force_proxy_internal*/set force_node — fijar una sesión a un nodo específico

Ejecute esta sentencia para enrutar todas las sentencias SQL posteriores de la sesión a un nodo específico.

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

Si el nodo falla, se devuelve el siguiente error:

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

Evite usar /*force_proxy_internal*/ a menos que tenga un motivo específico para fijar la sesión. Esta opción deshabilita la división de lectura/escritura para todas las sentencias posteriores en la conexión.

/*force_all*/ — transmitir a todos los nodos

Agregue este hint para transmitir una sentencia a cada nodo del clúster.

/*force_all*/ SELECT * FROM information_schema.processlist;
/*force_all*/ requiere PolarProxy 2.8.36 o posterior. Para comprobar y actualizar su versión de PolarProxy, consulte Minor version update .

Los resultados devueltos dependen de la consulta:

  • Tablas del sistema (information_schema.processlist, information_schema.innodb_trx, performance_schema.threads, performance_schema.metadata_locks, sys.schema_table_lock_waits): PolarProxy transmite la sentencia a todos los nodos y devuelve el resultado combinado.

  • Todas las demás tablas y escenarios: Solo se devuelven los resultados de la base de datos principal.

Sin el hint, SELECT * FROM information_schema.processlist se enruta a un nodo aleatorio.

/*FORCE_IMCI_NODES*/ — enrutar a nodos de almacenamiento columnar

Si habilitó la distribución automática de solicitudes entre nodos de almacenamiento por filas y almacenamiento columnar, agregue este hint para forzar la ejecución de una consulta en nodos de almacenamiento columnar IMCI (In-Memory Column Index).

/*FORCE_IMCI_NODES*/ SELECT * FROM large_analytics_table;

Para obtener detalles sobre la configuración, consulte Automatic request distribution among row store and column store nodes.