管理大量表

Cloud SQL 大量表 Recommender 可帮助您检测表计数过高且接近服务等级协议 (SLA) 限制的实例,然后提供一些有关如何优化此类实例和提高实例性能的建议。

本页介绍了大量表 Recommender 的工作原理和使用方法。

工作原理

如果一个实例包含 50,000 个或更多数据库表,则可能导致实例无响应或无法执行维护操作,同时该实例也会被排除在服务等级协议 (SLA) 之外。

Cloud SQL 大量表 Recommender 会分析 Cloud SQL MySQL 实例上表数的指标。如果表的数量大于或等于服务等级协议 (SLA) 限制(允许 50,000 个表)的 80%,则实例被视为具有大量表。

价格

Cloud SQL 大量打开的表 Recommender 为标准 Recommender 价格层级

准备工作

在查看建议和数据分析之前,请执行以下操作:

  • 如需获得查看和使用数据分析和建议的权限,请确保您拥有所需的角色
    任务 角色
    查看建议 以下角色之一:recommender.cloudsqlViewercloudsql.viewer
    采纳建议 以下角色之一:recommender.cloudsqlAdmincloudsql.editorcloudsql.admin
    如需详细了解角色,请参阅了解角色授予 IAM 权限
  • 启用 Recommender API。

    启用 API

列出“改进实例性能”建议

您可以使用 Google Cloud 控制台、gcloud CLI 或 Recommender API 列出“改进实例性能”建议。

仅当您的实例接近性能阈值限制时,系统才会显示改进实例性能建议。

控制台

如需使用 Google Cloud 控制台列出有关实例性能的建议,请按照以下步骤操作:

  1. 转到 Cloud SQL 实例页面。

    打开“Cloud SQL 实例”

  2. 点击“管理大量表”建议横幅上的查看全部

或者,请按以下步骤操作:

  1. 转到 Recommendation Hub。另请参阅 Recommendation Hub 使用入门

    转到 Recommendation Hub

  2. Improve Cloud SQL Instance Performance(改进 Cloud SQL 实例性能)卡片中,点击查看全部

  3. 选择具有 Manage high number of tables(管理大量表)建议的实例。

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) 限制(50,000 个表)的 80%。
子类型: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 标志的值,请参阅配置数据库标志。但是,此设置并不会使实例恢复到服务等级协议 (SLA) 的涵盖范围之内。请参阅这些操作指南

  • 使用常规表空间创建表或将现有表移动到常规表空间。如需了解详情,请参阅有关常规表空间的 MySQL 文档

后续步骤