Cloud SQL 大量表 Recommender 可帮助您检测表计数过高且接近服务等级协议 (SLA) 限制的实例,然后提供一些有关如何优化此类实例和提高实例性能的建议。
本页介绍了大量表 Recommender 的工作原理和使用方法。
工作原理
如果一个实例包含 50,000 个或更多数据库表,则可能导致实例无响应或无法执行维护操作,同时该实例也会被排除在服务等级协议 (SLA) 之外。
Cloud SQL 大量表 Recommender 会分析 Cloud SQL MySQL 实例上表数的指标。如果表的数量大于或等于服务等级协议 (SLA) 限制(允许 50,000 个表)的 80%,则实例被视为具有大量表。
价格
Cloud SQL 大量打开的表 Recommender 为标准 Recommender 价格层级。
准备工作
在查看建议和数据分析之前,请执行以下操作:
- 如需获得查看和使用数据分析和建议的权限,请确保您拥有所需的角色。
Tasks 角色 查看建议 以下角色之一: recommender.cloudsqlViewer
或cloudsql.viewer
。采纳建议 以下角色之一: recommender.cloudsqlAdmin
、cloudsql.editor
或cloudsql.admin
。 -
Enable the Recommender API.
列出“改进实例性能”建议
您可以使用 Google Cloud 控制台、gcloud CLI
或 Recommender API 列出“改进实例性能”建议。
仅当您的实例接近性能阈值限制时,系统才会显示改进实例性能建议。
控制台
如需使用 Google Cloud 控制台列出有关实例性能的建议,请按照以下步骤操作:
转到 Cloud SQL 实例页面。
点击“管理大量表”建议横幅上的查看全部。
或者,请按以下步骤操作:
转到 Recommendation Hub。另请参阅 Recommendation Hub 使用入门。
在 Improve Cloud SQL Instance Performance(改进 Cloud SQL 实例性能)卡片中,点击查看全部。
选择具有 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
:您的项目 IDLOCATION
:区域,例如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 文档。