Utiliser le conseiller d'index

Cette page décrit le conseiller d'index Cloud SQL pour MySQL et explique comment afficher et appliquer ses recommandations d'index.

Cloud SQL pour MySQL propose un conseiller d'index entièrement géré qui suit régulièrement les requêtes traitées par votre base de données. Le conseiller d'index analyse régulièrement ces requêtes pour recommander de nouveaux index susceptibles d'en améliorer les performances. L'outil Index Advisor vous permet de détecter et de résoudre les problèmes de performances des systèmes et des requêtes.

Comment fonctionne le conseiller d'index ?

Le conseiller d'index vous aide à améliorer le traitement des requêtes en :

  • recommandant un ensemble d'index à l'aide de commandes SQL permettant de créer des index.
  • fournissant des données pour vous aider à évaluer les index recommandés, par exemple la taille de stockage estimée et l'impact des index sur une requête.
L'outil de conseil sur les index stocke et affiche la commande CREATE INDEX contenant le nom de la base de données, le nom de la table et les noms des colonnes. Les requêtes suivies sont toutes des requêtes normalisées dont tous les littéraux ont été supprimés.

Les recommandations d'index sont chiffrées au repos.

Dans Cloud SQL pour MySQL, vous pouvez utiliser des options de base de données pour configurer et régler le conseiller d'index. Pour en savoir plus, consultez Indicateurs du conseiller d'index.

Limites

Le conseiller d'index Cloud SQL pour MySQL présente les limites suivantes:

  • Le conseiller d'index ne fournit que des recommandations CREATE INDEX.
  • Le conseiller d'index n'est pas compatible avec les instances présentant les configurations suivantes :
    • Instances Cloud SQL Enterprise
    • Instances qui utilisent des types de machines à cœur partagé

Avant de commencer

Pour obtenir des recommandations de l'outil de conseil sur les index, vous devez utiliser l'édition Cloud SQL Enterprise Plus et activer les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus pour votre instance Cloud SQL.

Rôles et autorisations requis

Pour obtenir les autorisations nécessaires pour obtenir des recommandations de l'outil de conseil sur les index, demandez à votre administrateur de vous accorder le rôle IAM Lecteur Cloud SQL (roles/cloudsql.viewer) sur le projet qui héberge l'instance Cloud SQL. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour obtenir des recommandations de l'outil Index Advisor. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour obtenir des recommandations de l'outil de conseil sur les index :

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer les recommandations du conseiller d'index

Lorsque vous activez les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus, vous activez automatiquement les recommandations du conseiller d'index.

Désactiver les recommandations du conseiller d'index

Vous ne pouvez pas désactiver les recommandations du conseiller d'index sans désactiver les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus.

Pour désactiver les recommandations du conseiller d'index et les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus, consultez Désactiver les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus.

Afficher les recommandations du conseiller d'index

Cloud SQL exécute automatiquement et régulièrement l'analyse du conseiller d'index. Pour afficher les recommandations du conseiller d'index, utilisez le tableau de bord "Insights sur les requêtes". Vous pouvez également afficher et interroger les recommandations du conseiller d'index sous forme de tableau, ou demander une analyse et un rapport à la demande à tout moment.

Afficher et filtrer les recommandations dans le tableau de bord "Insights sur les requêtes"

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requêtes.
  4. Les recommandations du conseiller d'index sont affichées dans la colonne Recommandation de la section Requêtes et tags les plus fréquents.
  5. (Facultatif) Pour n'afficher que les requêtes avec des recommandations CREATE INDEX, ajoutez un filtre pour le champ Recommandation : Créer des index.

Afficher les recommandations pour une requête

Pour afficher les recommandations d'index pour une requête spécifique, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requêtes.
  4. Dans la section Requêtes et tags les plus fréquents, cliquez sur Requêtes.
  5. Pour obtenir les détails d'une recommandation sur une requête, effectuez l'une des opérations suivantes :
    • Cliquez sur une requête pour en savoir plus sur les recommandations de la requête sélectionnée, y compris les informations suivantes :
      • Impact sur les performances (élevé, moyen et faible): estimation de la vitesse de requête après la création de tous les index recommandés.
      • Recommandations: permet de créer des recommandations d'index.
      • Tables concernées : nombre de tables qui seront concernées lorsque des index seront créés.
      • Espace de stockage supplémentaire estimé nécessaire: taille d'espace de stockage estimée nécessaire pour créer tous les index recommandés.
      • Nombre de requêtes concernées : nombre total de requêtes de la charge de travail concernées par les recommandations d'index. Un index peut bénéficier de plusieurs requêtes.
    • Cliquez sur Créer des index pour une requête spécifique afin d'obtenir des recommandations détaillées sur la création d'index afin d'améliorer les performances des requêtes.

Afficher les recommandations sous forme de vue Tableau de base de données

Vous pouvez lire ses résultats dans le tableau suivant, situé dans la base de données mysql :

  • mysql.cloudsql_db_advisor_recommended_indexes : répertorie les nouveaux index recommandés pour chaque base de données. Il comprend également des estimations de l'espace de stockage requis pour chaque index et du nombre de requêtes que chaque index peut affecter.

Par exemple, pour afficher les résultats de l'analyse des recommandations d'index la plus récente, au format tableau, exécutez la requête suivante :

SELECT * FROM mysql.cloudsql_db_advisor_recommended_indexes;

Créer des index recommandés

Vous pouvez créer des index recommandés à partir du tableau de bord "Insights sur les requêtes" ou d'une vue Tableau de base de données.

Pour créer un index recommandé à l'aide du tableau de bord "Insights sur les requêtes", procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requêtes.
  4. Dans le tableau Dimensions principales par charge de la base de données, cliquez sur Requêtes.
  5. Cliquez sur Créer des index pour une requête spécifique.
  6. Cliquez sur Copier toutes les commandes d'index. Les commandes CREATE INDEX sont copiées dans le presse-papiers.
  7. Connectez-vous à l'instance principale sur la ligne de commande.
  8. Pour créer les index recommandés, exécutez les commandes qui ont été copiées dans votre presse-papiers, par exemple :

    CREATE INDEX ON "public"."demo_order" ("customer_id");

La colonne index de la table mysql.cloudsql_db_advisor_recommended_indexes contient, dans chaque ligne, une instruction MySQL CREATE INDEX LDD complète permettant de générer l'index recommandé dans cette ligne.

Pour appliquer la recommandation de cette ligne, exécutez l'instruction LDD exactement telle qu'elle est présentée.

Par exemple, considérons ce résultat de l'exécution manuelle d'une analyse à l'aide de la requête décrite dans la section précédente :

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

Ce rapport contient une seule recommandation : ajouter un index à une seule colonne sur la colonne age dans la table Students du schéma School. Pour appliquer ce conseil, saisissez une requête LDD comme indiqué dans le rapport :

CREATE INDEX ON "School"."Students"("age");

Afficher les requêtes concernées

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requêtes.
  4. Dans le tableau Dimensions principales par charge de la base de données, cliquez sur Requêtes.
  5. Cliquez sur Créer des index pour une requête spécifique.
  6. Cliquez sur Afficher les requêtes concernées.
  7. Cliquez sur une requête pour en savoir plus sur celle-ci.

Configurer le conseiller d'index

Bien que le conseiller d'index soit conçu pour fonctionner dans la plupart des cas d'utilisation avec ses paramètres par défaut, vous pouvez affiner son comportement en définissant différents indicateurs de base de données.

Par défaut, le conseiller d'index s'exécute une fois toutes les 24 heures. Vous pouvez modifier l'heure de la programmation automatique à l'aide de l'option cloudsql_index_advisor_auto_advisor_schedule ou exécuter une analyse ad hoc sur une date et une heure spécifiques à l'aide de l'option cloudsql_index_advisor_run_at_timestamp. Pour en savoir plus, consultez Indicateurs du conseiller d'index.

Étapes suivantes