管理大量資料表

Cloud SQL high-number-of-tables 建議工具可協助您偵測資料表數量過多且接近服務水準協議上限的執行個體。並提供建議,協助您最佳化這類執行個體,提升執行個體效能。

本頁面說明資料表數量過多建議工具的運作方式和使用方法。

運作方式

如果單一執行個體上有 50,000 個以上的資料庫資料表,可能會導致執行個體沒有回應或無法執行維護作業,且執行個體不在服務水準協議的涵蓋範圍內。

Cloud SQL high-number-of-tables 建議工具會分析 Cloud SQL MySQL 執行個體的資料表數量指標。如果資料表數量超過或等於服務水準協議上限 (即 50,000 個資料表) 的 80%,則視為資料表數量過多。

定價

Cloud SQL high-number-of-open-tables 建議工具屬於標準建議工具定價級別。

事前準備

您必須先完成下列步驟,才能查看建議和洞察資料:

  • 如要取得查看及使用洞察和建議的權限,請確認您具備必要的角色。
    Tasks 角色
    查看建議 下列其中一個角色:recommender.cloudsqlViewer 或 cloudsql.viewer。
    套用建議 下列其中一個角色:recommender.cloudsqlAdmin、cloudsql.editor 或 cloudsql.admin。
    如要進一步瞭解角色,請參閱「瞭解角色」和「授予 IAM 權限」。
  • 啟用 Recommender API (如果尚未啟用)。

    啟用 API 所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過 Service Usage 管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

列出「提高執行個體效能」建議

您可以使用 Google Cloud 控制台、gcloud CLI或 Recommender API,列出「提高執行個體效能」建議。

只有在執行個體接近效能門檻限制時,系統才會顯示提高執行個體效能的建議。

控制台

如要使用Google Cloud 控制台列出執行個體效能建議,請按照下列步驟操作:

  1. 前往「Cloud SQL 執行個體」頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 在「管理大量資料表」最佳化建議橫幅中,按一下「查看全部」。

或者,請按照下列步驟操作:

  1. 前往「Active Assist」。另請參閱「開始使用建議中心」。

    前往「Active Assist」頁面

  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。

如果建議工具偵測到資料表數量過多的執行個體,就會將這些執行個體與其他效能建議一併列在表格中。每個資料列都會顯示執行個體 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 high-number-of-open-tables 建議工具產生的洞察和建議,可協助您提升效能。子類型會顯示在gcloud CLI和 API 結果中。

洞察資料 建議
這個執行個體的資料表數量超過或等於服務水準協議上限 (即 50,000 個資料表) 的 80%。
子類型:MYSQL_HIGH_NUMBER_OF_TABLES
如要提高 Cloud SQL 執行個體的效能,請減少資料表數量。
子類型:MYSQL_HIGH_NUMBER_OF_TABLES_BEST_PRACTICE

套用建議

仔細評估建議,然後執行下列任一操作:

  • 如要檢查執行個體,請按一下「View instance」(查看執行個體)。請參閱「最佳化執行個體效能」一文,並按照建議操作。

  • 如要關閉建議,讓建議不再醒目顯示並變暗,請按一下「Dismiss」(關閉)。

  • 如要關閉面板,而不套用或關閉建議,請按一下「Cancel」(取消)。

最佳化執行個體效能

  • 編輯執行個體,將 vCPU 數量增加至至少 32 個核心,並將記憶體大小增加至至少 200 GB。執行個體的資料表數量上限會從 50,000 個提高至 500,000 個。

  • 捨棄不需要的資料表:

    DROP TABLE TABLE_NAME; 

    更改下列內容:

    • TABLE_NAME:要捨棄的資料表名稱。
  • 將資料庫分割至多個執行個體,減少每個執行個體的資料表數量,確保每個執行個體的資料表數量不超過建議上限。

  • 如果無法立即減少資料表數量,可以將 innodb_file_per_table 旗標設為 OFF,降低執行個體受資料表數量過多影響的可能性。如要關閉 innodb_file_per_table 旗標的值,請參閱「設定資料庫旗標」。不過,這項設定不會讓執行個體重新符合服務水準協議。請參閱這些操作指南。

  • 使用一般資料表空間建立資料表,或將現有資料表移至一般資料表空間。詳情請參閱 MySQL 一般資料表空間說明文件。

後續步驟