Tous les produits
Search
Centre de documentation

AnalyticDB:PlanCache

Dernière mise à jour :Aug 10, 2026

Dans les charges de travail de requêtes ponctuelles à forte concurrence, la compilation et l'optimisation SQL constituent un goulot d'étranglement. PlanCache résout ce problème en mettant en cache le plan d'exécution lors du premier lancement d'une requête. Ainsi, les requêtes ultérieures présentant le même modèle SQL réutilisent le plan mis en cache au lieu d'être recompilées. Cette approche élimine la surcharge liée à la compilation répétée et réduit la latence des requêtes à grande échelle.

Remarque

PlanCache est conçu exclusivement pour les requêtes ponctuelles à forte concurrence. Son utilisation n'est pas recommandée pour les autres types de requête.

Fonctionnement

Les requêtes ponctuelles (par exemple, SELECT * FROM tbl WHERE id = ?) disposent de plans d'exécution stables : le chemin d'accès optimal ne varie pas en fonction de la valeur spécifique du paramètre. PlanCache tire parti de cette propriété en mettant le plan en cache lors de la première exécution et en le réutilisant pour toutes les requêtes suivantes correspondant au même modèle SQL. Pour les requêtes comportant des prédicats complexes, des jointures ou des agrégations, le plan optimal varie généralement selon la distribution des données ; PlanCache ne s'applique donc pas dans ce cas.

Prérequis

Avant de commencer, assurez-vous que :

  • La version mineure du cluster est 3.1.10.0 ou ultérieure

Pour vérifier ou mettre à jour la version mineure, connectez-vous à la console AnalyticDB for MySQL et accédez à la section Configuration Information de la page Cluster Information. Pour plus de détails, consultez la rubrique Mettre à jour la version mineure d'un cluster.

Activer ou désactiver PlanCache

PlanCache est désactivé par défaut. Exécutez les commandes suivantes pour l'activer ou le désactiver.

Activer PlanCache :

SET ADB_CONFIG O_SPC_SCOPE=POINT_QUERY;

Désactiver PlanCache :

SET ADB_CONFIG O_SPC_SCOPE=NONE;

Exemple

L'exemple suivant illustre comment PlanCache réduit la surcharge de compilation pour une requête ponctuelle à forte concurrence.

Supposons que le modèle de requête soit le suivant :

SELECT * FROM tbl0 WHERE col0 = ?;
  1. Activez PlanCache.

    SET ADB_CONFIG O_SPC_SCOPE=POINT_QUERY;
  2. Exécutez la requête. AnalyticDB for MySQL compile le plan d'exécution et le met en cache.

    SELECT * FROM tbl0 WHERE col0 = 666;
  3. Exécutez une requête avec le même modèle SQL. Le système réutilise automatiquement le plan d'exécution mis en cache, évitant ainsi la compilation et l'optimisation.

    SELECT * FROM tbl0 WHERE col0 = 777;