Tous les produits
Search
Centre de documentation

PolarDB:Utiliser la syntaxe HINT

Dernière mise à jour :Aug 11, 2026

Les hints SQL permettent de remplacer les décisions de routage par défaut d'un endpoint de cluster configuré en mode Read/Write (Automatic Read/Write Splitting). Ces hints possèdent la priorité de routage la plus élevée et contournent à la fois les niveaux de cohérence et le fractionnement des transactions. Évaluez leur impact avant de les utiliser en production.

Limites

Les hints fonctionnent uniquement sur les endpoints de cluster dont le mode lecture/écriture est défini sur Read/Write (Automatic Read/Write Splitting). Ils ne sont pas pris en charge sur les endpoints de cluster ou les endpoints principaux configurés en mode Read-only.

Pour plus de détails sur les modes lecture/écriture des endpoints, consultez la section « Modes lecture/écriture des endpoints de cluster » dans Endpoints.

Hints disponibles

Hint Routage vers Cas d'usage typique
/*FORCE_MASTER*/ Nœud principal Forcer l'exécution d'une lecture sur le nœud principal
/*FORCE_SLAVE*/ Nœud en lecture seule Diriger une instruction vers un nœud en lecture seule via un endpoint lecture/écriture
/*force_node='<Node ID>'*/ Nœud spécifique (instruction unique) Déboguer ou inspecter un nœud précis
/*force_proxy_internal*/set force_node = '<Node ID>' Nœud spécifique (toutes les instructions suivantes) Associer une session à un nœud — à utiliser avec précaution
/*force_all*/ Tous les nœuds Interroger les tables système sur l'ensemble du cluster
/*FORCE_IMCI_NODES*/ Nœuds de stockage colonne Orienter les requêtes analytiques vers les nœuds IMCI (In-Memory Column Index)
Les hints ne sont pas sensibles à la casse et doivent être placés avant l'instruction SQL.
Si vous exécutez des hints depuis le client MySQL en ligne de commande, ajoutez l'option -c (ou --comments ). Sans cette option, le client supprime le hint avant d'envoyer la requête au serveur. Consultez Options du client MySQL .

Utilisation

/*FORCE_MASTER*/ — router vers le nœud principal

Ajoutez ce hint avant toute instruction SQL pour l'envoyer au nœud principal, indépendamment de la logique de routage par défaut.

/*FORCE_MASTER*/ SELECT * FROM test;

Sans ce hint, SELECT * FROM test est routée vers un nœud en lecture seule. Avec le hint, elle s'exécute sur le nœud principal.

Ce hint n'a aucun effet sur les endpoints configurés en mode Read-only : l'instruction n'est alors pas redirigée vers le nœud principal.

/*FORCE_SLAVE*/ — router vers un nœud en lecture seule

Utilisez ce hint pour envoyer explicitement une instruction vers un nœud en lecture seule.

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

Ne combinez pas les hints avec des instructions modifiant les variables de session. Par exemple, /*FORCE_SLAVE*/ SET NAMES utf8; peut provoquer des erreurs.

/*force_node='<Node ID>'*/ — cibler un nœud spécifique (instruction unique)

Ajoutez ce hint pour exécuter une seule instruction SQL sur le nœud de votre choix.

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

Si le nœud spécifié est indisponible, l'erreur suivante s'affiche :

force hint server node is not found, please check.

/*force_proxy_internal*/set force_node — associer une session à un nœud spécifique

Exécutez cette instruction pour router toutes les instructions SQL suivantes de la session vers un nœud déterminé.

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

En cas de défaillance du nœud, l'erreur suivante s'affiche :

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

Évitez d'utiliser /*force_proxy_internal*/ sauf si vous avez une raison précise d'associer la session à un nœud. Ce hint désactive le fractionnement lecture/écriture pour toutes les instructions suivantes de la connexion.

/*force_all*/ — diffuser vers tous les nœuds

Ajoutez ce hint pour diffuser une instruction à chaque nœud du cluster.

/*force_all*/ SELECT * FROM information_schema.processlist;
/*force_all*/ nécessite PolarProxy 2.8.36 ou version ultérieure. Pour vérifier et mettre à jour votre version de PolarProxy, consultez Mise à jour de version mineure .

Les résultats retournés dépendent de la requête :

  • Tables système (information_schema.processlist, information_schema.innodb_trx, performance_schema.threads, performance_schema.metadata_locks, sys.schema_table_lock_waits) : PolarProxy diffuse l'instruction à tous les nœuds et retourne le résultat fusionné.

  • Toutes les autres tables et scénarios : seuls les résultats de la base de données principale sont retournés.

Sans ce hint, SELECT * FROM information_schema.processlist est routée vers un nœud aléatoire.

/*FORCE_IMCI_NODES*/ — router vers les nœuds de stockage colonne

Si vous avez activé la répartition automatique des requêtes entre les nœuds de stockage ligne et de stockage colonne, ajoutez ce hint pour forcer l'exécution d'une requête sur les nœuds de stockage colonne IMCI (In-Memory Column Index).

/*FORCE_IMCI_NODES*/ SELECT * FROM large_analytics_table;

Pour plus de détails sur la configuration, consultez Répartition automatique des requêtes entre les nœuds de stockage ligne et de stockage colonne.