Gérer un nombre élevé de tables

L'recommender pour nombre élevé de tables Cloud SQL vous aide à détecter les instances dont le nombre de tables est trop élevé et proche de la limite du contrat de niveau de service. Il vous fournit ensuite des recommandations sur l'optimisation de ces instances et l'amélioration de leurs performances.

Cette page décrit le fonctionnement de l'outil de recommandation pour nombre élevé de tables, et comment vous pouvez l'utiliser.

Fonctionnement

Si vous avez 50 000 tables de base de données ou plus sur une seule instance, celle-ci risque de ne plus répondre ou d'être incapable d'effectuer des opérations de maintenance. Elle n'est, dès lors, plus couverte par le contrat de niveau de service.

L'outil de recommandation pour nombre élevé de tables Cloud SQL analyse les métriques pour le nombre de tables sur une instance MySQL Cloud SQL. Si le nombre de tables est supérieur ou égal à 80 % de la limite du contrat de niveau de service, soit 50 000 tables, l'instance est considérée comme ayant un nombre élevé de tables.

Tarifs

L'outil de recommandation pour nombre élevé de tables Cloud SQL est inclus dans le niveau de tarification standard de l'outil de recommandation.

Avant de commencer

Afin de pouvoir afficher les recommandations et les insights, procédez comme suit :

  • Pour obtenir les autorisations permettant d'afficher et d'utiliser les insights et les recommandations, assurez-vous de disposer des rôles requis.
    Tâches Rôles
    Afficher les recommandations L'un des rôles suivants : recommender.cloudsqlViewer ou cloudsql.viewer.
    Appliquer les recommandations L'un des rôles suivants : recommender.cloudsqlAdmin, cloudsql.editor ou cloudsql.admin.
    Pour plus d'informations sur les rôles, consultez les pages Comprendre les rôles et Accorder des autorisations IAM.
  • Enable the Recommender API.

    Enable the API

Répertorier les recommandations d'amélioration des performances des instances

Vous pouvez répertorier les recommandations d'amélioration des performances d'instance à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Recommender.

Les recommandations d'amélioration des performances des instances ne s'affichent que si des instances sont sur le point d'atteindre les limites du seuil de performances.

Console

Pour répertorier les recommandations relatives aux performances des instances en utilisant la console Google Cloud, procédez comme suit :

  1. Accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur Tout afficher dans la bannière de recommandations "Gérer un nombre élevé de tables".

Vous pouvez également procéder comme suit :

  1. Accédez au centre de recommandations. Consultez également la section Premiers pas avec le centre de recommandations.

    Accéder au hub de recommandations

  2. Dans la fiche Améliorer les performances des instances Cloud SQL, cliquez sur Tout afficher.

  3. Sélectionnez les instances associées à la recommandation Gérer un nombre élevé de tables.

CLI gcloud

Pour répertorier les recommandations d'amélioration des performances des instances à l'aide de gcloud CLI, exécutez la commande gcloud recommender recommendations list comme suit :

gcloud recommender recommendations list \
--project=PROJECT_ID \
--location=LOCATION \
--recommender=google.cloudsql.instance.PerformanceRecommender \
--filter=recommenderSubtype=MYSQL_HIGH_NUMBER_OF_TABLES_BEST_PRACTICE

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

API

Pour répertorier les recommandations d'amélioration des performances des instances à l'aide de l'API Recommendations, appelez la méthode recommendations.list comme suit :

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

Si l'outil de recommandation détecte des instances avec un nombre élevé de tables, il les répertorie dans un tableau avec d'autres recommandations concernant les performances. Chaque ligne indique l'ID d'instance, une brève recommandation, le moteur de la base de données, l'emplacement et la date de la dernière actualisation.

Afficher les insights et les recommandations détaillées

Vous pouvez afficher des insights et des recommandations détaillées sur les instances comportant un grand nombre de tables à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Recommender.

Console

Pour afficher des insights et des recommandations détaillées sur les instances proches du seuil de performances à l'aide de la console Google Cloud, cliquez sur le lien de recommandation dans la liste des instances.

CLI gcloud

Pour afficher des insights et des recommandations détaillées sur des instances proches du seuil de performances à l'aide de gcloud CLI, exécutez la commande gcloud recommender insights list comme suit :

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_TABLES

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

API

Pour afficher des insights et des recommandations détaillées sur des instances proches du seuil de performances à l'aide de l'API Recommendations, appelez la méthode insights.list comme suit :

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTables/insights

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

La table suivante répertorie les insights et les recommandations que l'outil de recommandation de Cloud SQL pour le nombre élevé de tables ouvertes génère pour vous aider à améliorer les performances. Les sous-types sont visibles dans les résultats gcloud CLI et de l'API.

Insight Recommandation
Le nombre de tables sur cette instance est supérieur ou égal à 80 % de la limite du contrat de niveau de service, soit 50 000 tables.
Sous-type : MYSQL_HIGH_NUMBER_OF_TABLES.
Améliorez les performances des instances Cloud SQL en réduisant le nombre de tables.
Sous-type : MYSQL_HIGH_NUMBER_OF_TABLES_BEST_PRACTICE.

Appliquer les recommandations

Étudiez attentivement les recommandations et effectuez l'une des opérations suivantes :

  • Pour examiner la recommandation, cliquez sur Afficher l'instance. Consultez la section Optimiser les performances de votre instance et suivez les recommandations.

  • Pour ignorer la recommandation afin qu'elle ne soit plus mise en évidence et apparaisse grisée, cliquez sur Ignorer.

  • Pour fermer le panneau sans appliquer ni ignorer la recommandation, cliquez sur Annuler.

Optimiser les performances de votre instance

  • Modifiez votre instance pour faire passer le nombre de processeurs virtuels à au moins 32 cœurs et la taille de la mémoire à au moins 200 Go. Cela fait passer la limite de tables de l'instance de 50 000 à 500 000.

  • Supprimez les tables inutiles :

    DROP TABLE TABLE_NAME; 

    Remplacez les éléments suivants :

    • TABLE_NAME : nom de la table que vous souhaitez supprimer.
  • Réduisez le nombre de tables par instance en divisant la base de données sur plusieurs instances afin de respecter les limites recommandées.

  • Si vous ne pouvez pas réduire immédiatement le nombre de tables, vous pouvez réduire la probabilité que votre instance soit affectée par un nombre élevé de tables en définissant l'option innodb_file_per_table sur "OFF". Pour désactiver la valeur de l'option innodb_file_per_table, consultez Configurer une option de base de données. Toutefois, ce paramètre ne permet pas de rétablir la conformité de l'instance avec le contrat de niveau de service. Consultez ces consignes opérationnelles.

  • Utilisez un espace de table général pour créer des tables ou déplacer des tables existantes vers un espace de table général. Pour en savoir plus, consultez la documentation MySQL sur les espaces de tables généraux.

Étapes suivantes