多数のテーブルを管理する

Cloud SQL テーブル数過多の Recommender は、テーブル数が過剰で SLA の上限に近いインスタンスの検出に役立ちます。これは、このようなインスタンスを最適化してパフォーマンスを改善する方法に関する推奨事項を提供します。

このページでは、テーブル数過多の Recommender の仕組みと使用方法について説明します。

仕組み

1 つのインスタンスに 50,000 以上のデータベース テーブルがあると、インスタンスが応答不能になったり、メンテナンス オペレーションを実行できなくなったりして、インスタンスが SLA の対象外になる可能性があります。

Cloud SQL テーブル数過多の Recommender は、Cloud SQL MySQL インスタンスにあるテーブル数の指標を分析します。テーブル数が SLA 上限の 80% 以上(50,000 テーブル以上)の場合、インスタンスのテーブル数が多くなっているとみなされます。

料金

Cloud SQL テーブル数過多の Recommender は、標準の Recommender の料金ティアに含まれています。

始める前に

推奨事項と分析情報を表示するには、事前に次の手順を行う必要があります。

  • 分析情報と推奨事項を表示、操作する権限を取得するには、必要なロールが必要です。
    タスク ロール
    推奨事項を表示する recommender.cloudsqlViewer または cloudsql.viewer のいずれかのロール。
    推奨事項を適用する recommender.cloudsqlAdmincloudsql.editorcloudsql.admin のいずれかのロール。
    ロールの詳細については、ロールについてIAM 権限の付与をご覧ください。
  • Recommender API を有効にします。

    API を有効にする

インスタンスのパフォーマンス改善の推奨事項を一覧表示する

インスタンスのパフォーマンス改善に関する推奨事項を一覧表示するには、Google Cloud コンソール、gcloud CLI、または Recommender API を使用します。

インスタンスのパフォーマンス改善に関する推奨事項は、パフォーマンスしきい値の制限に近づいているインスタンスがある場合にのみ表示されます。

コンソール

Google Cloud コンソールを使用してインスタンスのパフォーマンスに関する推奨事項を一覧表示するには、次の操作を行います。

  1. Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. 「多数のテーブルを管理する」の推奨事項のバナーで [すべて表示] をクリックします。

または、次の方法を行います。

  1. [おすすめハブ] に移動します。おすすめハブのスタートガイドもご覧ください。

    おすすめハブに移動

  2. Cloud SQL インスタンスのパフォーマンスを向上させる」カードで、[すべて表示] をクリックします。

  3. 多数のテーブルを管理する」の推奨事項があるインスタンスを選択します。

gcloud CLI

gcloud CLI を使用してインスタンスのパフォーマンス改善に関する推奨事項を一覧表示するには、次のように gcloud recommender recommendations list コマンドを実行します。

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

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

API

Recommendations API を使用してインスタンスのパフォーマンス改善に関する推奨事項を一覧表示するには、次のように recommendations.list メソッドを呼び出します。

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

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

Recommender は、テーブル数の多いインスタンスを検出すると、他のパフォーマンス推奨事項と一緒にテーブルに表示します。各行には、インスタンス ID、簡単な推奨事項、データベース エンジン、ロケーション、最終更新日が表示されます。

分析情報と詳細な推奨事項を表示する

テーブル数の多いインスタンスに関する分析情報と詳細な推奨事項を表示するには、Google Cloud コンソール、gcloud CLI、または Recommender API を使用します。

コンソール

Google Cloud コンソールを使用して、パフォーマンスしきい値に近いインスタンスの分析情報と詳細な推奨事項を表示するには、インスタンスのリストにある推奨事項リンクをクリックします。

gcloud CLI

gcloud CLI を使用して、パフォーマンスしきい値に近いインスタンスの分析情報と詳細な推奨事項を表示するには、次のように gcloud recommender insights list コマンドを実行します。

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

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

API

Recommendations API を使用して、パフォーマンスしきい値に近いインスタンスの分析情報と詳細な推奨事項を表示するには、次のように insights.list メソッドを呼び出します。

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

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

次の表では、パフォーマンス改善に役立つ Cloud SQL の上位テーブル Recommender が生成する分析情報と推奨事項を示します。サブタイプは、gcloud CLI と API の結果に表示されます。

分析情報 推奨事項
このインスタンスのテーブル数は、SLA 上限の 80%(50,000 テーブル)以上です。
サブタイプ: MYSQL_HIGH_NUMBER_OF_TABLES
テーブル数を減らすことで Cloud SQL インスタンスのパフォーマンスを向上させることができます。
サブタイプ: MYSQL_HIGH_NUMBER_OF_TABLES_BEST_PRACTICE

推奨事項を適用する

推奨事項を慎重に評価し、以下のいずれかを行います。

  • インスタンスを調べるには、[インスタンスを表示] をクリックします。インスタンスのパフォーマンスの最適化を確認して、推奨事項に従います。

  • 推奨事項を閉じて強調を解除し、グレー表示するには、[閉じる] をクリックします。

  • 推奨事項を適用または拒否せずにパネルを閉じるには、[キャンセル] をクリックします。

インスタンスのパフォーマンスを最適化する

  • インスタンスを編集して、vCPU 数を 32 コア以上に、メモリサイズを 200 GB 以上に増やします。これにより、インスタンスのテーブルの上限が 50,000 から 500,000 に引き上げられます。

  • 不要なテーブルを削除します。

    DROP TABLE TABLE_NAME; 

    次のように置き換えます。

    • TABLE_NAME: 削除するテーブルの名前。
  • データベースを複数のインスタンスに分割し、各インスタンスのテーブル数を推奨制限内に収めることで、インスタンスあたりのテーブル数を減らします。

  • テーブルの数をすぐに減らすことができない場合は、innodb_file_per_table フラグを OFF に設定することで、テーブル数が多い場合にインスタンスが受ける影響を軽減できます。innodb_file_per_table フラグの値を OFF にする方法については、データベース フラグを構成するをご覧ください。ただし、この設定はインスタンスを SLA 準拠に戻すものではありません。運用ガイドラインをご確認ください。

  • 一般的なテーブルスペースを使用してテーブルを作成するか、既存のテーブルを一般的なテーブルスペースに移動します。詳細については、一般的なテーブルスペースに関する MySQL のドキュメントをご覧ください。

次のステップ