配額與限制

這個頁面說明 Spanner 的實際工作環境配額和限制。配額和限制可能會在 Google Cloud 控制台中交替使用。

配額與限制的值隨時可能變動。

檢查及編輯配額的權限

如要查看配額,必須具備 serviceusage.quotas.get 身分與存取權管理 (IAM) 權限。

如要變更配額,必須具備 serviceusage.quotas.update IAM 權限。根據預設,擁有者、編輯者和配額管理員這些預先定義的角色都具備這項權限。

根據預設,「擁有者」和「編輯者」這些基本 IAM 角色和預先定義的「配額管理員」角色,都擁有這些權限。

查看配額

如要查看專案目前的資源配額,請使用Google Cloud 控制台:

前往配額頁面

提高配額

隨著 Spanner 使用量增加,您也可以要求更多配額。如果您預期用量將大幅攀升,請提前幾天提出申請,確保系統可以妥善調整您的配額。

您可能也需要提高用戶端配額覆寫。詳情請參閱建立消費者配額覆寫

您可以使用 Google Cloud 控制台,提高目前的 Spanner 執行個體設定節點上限。

  1. 前往「配額」頁面。

    前往「配額」頁面

  2. 在「服務」下拉式清單中,選取「Spanner API」

    如果系統未顯示「Spanner API」,表示 Spanner API 尚未啟用。詳情請參閱啟用 API

  3. 選取要變更的配額。

  4. 按一下 [編輯配額]

  5. 在隨即顯示的「Quota changes」(配額變更) 面板中,輸入新的配額限制。

    執行個體建立視窗的螢幕擷取畫面

  6. 依序按一下「完成」和「提交要求」

    如果無法手動將節點限制提高至所需上限,請按一下「申請更多配額」。填寫表單,向 Spanner 團隊提出要求。您會在提出要求後的 48 小時內收到回覆。

增加自訂執行個體設定的配額

您可以提高自訂執行個體設定的節點配額。

  1. 如要檢查自訂執行個體設定的節點限制,請檢查基本執行個體設定的節點限制。

    如果您不知道或不記得自訂執行個體設定的基本設定,請使用「顯示執行個體設定詳細資料」指令。

  2. 如果自訂執行個體設定所需的節點限制少於 85,請按照上一節「提高配額」的說明操作。使用 Google Cloud 控制台,提高與自訂執行個體設定相關聯的基本執行個體設定節點限制。

    如果自訂執行個體設定所需的節點數量超過 85 個,請填寫「Request a Quota Increase for your Spanner Nodes」(要求增加 Spanner 節點配額) 表單。在表單中指定自訂執行個體設定的 ID。

節點限制

限制
每個執行個體設定的節點數

預設限制會因專案和執行個體設定而異。如要變更專案配額限制或申請提高限制,請參閱「提高配額」。

執行個體限制

限制
執行個體 ID 長度 2 至 64 個字元

免費試用執行個體限制

Spanner 免費試用執行個體有下列額外限制。如要提高或移除這些限制,請將免費試用執行個體升級為付費執行個體。

限制
儲存空間容量 10 GiB
資料庫限制 最多可建立五個資料庫
不支援的功能 備份與還原
服務水準協議 無服務水準協議
試用期長度 90 天免費試用期

地理區域分割限制

限制
每個執行個體的分區數量上限 10
每個節點在分割區中的放置資料列數量上限 1 億

已儲存查詢的限制

限制
每個專案的儲存查詢數量上限 (包括其他 Google Cloud 產品的儲存查詢) 10,000
每次查詢的大小上限 1 MiB

執行個體設定限制

限制
每個專案的自訂執行個體設定數量上限 100
自訂執行個體設定 ID 長度

8 至 64 個字元

自訂執行個體設定 ID 的開頭必須為 custom-

資料庫限制

限制
每個執行個體的資料庫數
  • 1 個節點 (1,000 個處理單元) 以上的執行個體: 100 個資料庫
  • 如果執行個體小於 1 個節點:每 100 個處理單元可建立 10 個資料庫
每個資料庫的角色數 100
資料庫 ID 長度 2 至 30 個字元
儲存空間大小1
  • 1 個節點 (1,000 個處理單元) 以上的執行個體:每個節點 10 TiB
  • 如果執行個體小於 1 個節點: 每 100 個處理單元 1024.0 GiB

在大多數地區、雙區域和多區域 Spanner 執行個體設定中,每個節點的儲存空間容量增加至 10 TiB。詳情請參閱「效能和儲存空間改善」。

如果您使用分層儲存空間,每個節點最多可使用 10 TiB 的合併儲存空間 (SSD 和 HDD)。

備份會分開儲存,不會計入這項限制配額。詳情請參閱「儲存空間使用率指標」。

請注意,Spanner 會針對執行個體中實際使用的儲存空間計費,而非總可用儲存空間。

備份與還原限制

限制
每個資料庫正在執行的備份建立作業數量 1
每個執行個體正在執行的資料庫還原作業數量 (此處所指執行個體為位於還原資料庫者,並非位於備份中) 10
備份保留時間上限 1 年 (包含閏年中的額外天數)

結構定義限制

結構定義物件

限制
同一執行個體中所有資料庫的架構物件總數 預設限制會因執行個體設定而異9

DDL 陳述式

限制
單一結構定義變更的 DDL 陳述式大小 10 MiB
GetDatabaseDdl 傳回,資料庫整個結構定義的 DDL 陳述式大小 10 MiB

圖表

限制
每個資料庫的屬性圖 16
屬性圖名稱長度 1 至 128 個字元

資料表

限制
每個資料庫的資料表數 5,000
資料表名稱長度 1 至 128 個字元
每個資料表的欄數 1,024
欄名稱長度 1 至 128 個字元
每個儲存格的資料大小 10 MiB
STRING 儲存格大小 2,621,440 個 Unicode 字元
資料表索引鍵中的欄數

16

包含與任何上層資料表共用的索引鍵欄

資料表交錯深度

7

如果頂層資料表含有子資料表,則深度為 1。

如果頂層資料表的子資料表下還有一層子資料表,則深度為 2,以此類推。

資料表或索引鍵的總大小

8 KB

組成索引鍵之所有資料欄的加總大小。

非索引鍵欄的總大小

1600 MiB

資料表所有非索引鍵資料欄的加總大小。

索引

限制
每個資料庫的索引數 10,000
每個資料表的索引數 128
索引名稱長度 1 至 128 個字元
索引鍵中的欄數

16

已建立索引的欄數 (STORING 欄除外) 加上主資料表中的主鍵欄數

瀏覽次數

限制
每個資料庫的檢視畫面 5,000
檢視名稱長度 1 至 128 個字元
巢狀結構深度

10

參照另一個檢視畫面的檢視畫面巢狀深度為 1。如果某個檢視畫面參照另一個檢視畫面,而後者又參照其他檢視畫面,則巢狀結構深度為 2,以此類推。

位置群組

限制
每個資料庫的區域群組數量上限 16 個 (1 個預設區域群組和 15 個選用的額外區域群組)
ssd_to_hdd_spill_timespan 選項的最低時間量 1 小時
ssd_to_hdd_spill_timespan 選項允許的最長時間 365 天

查詢限制

限制
GROUP BY 子句中的欄數 1,000
IN 運算子中的值 10,000
函式呼叫數 1,000
彙整 20
巢狀函式呼叫數 75
巢狀 GROUP BY 子句數 35
巢狀子查詢運算式數 25
巢狀 Subselect 陳述式數 60
圖表查詢產生的聯結 100
參數 950
查詢陳述式長度 100 萬個字元
STRUCT 個欄位 1,000
子查詢運算式子項數 50
查詢中的聯集數 200
圖形深度 量化路徑遍歷 100

建立、讀取、更新和刪除資料的限制

限制
修訂版本大小 (含索引和變更串流) 100 MiB
每個工作階段的並行讀取數 100
每個修訂版本 (含索引) 的異動數2 80,000
每個資料庫的並行分區 DML 陳述式 20,000

管理作業限制

限制
管理動作要求大小3 1 MiB
管理動作頻率限制4

每位使用者每個專案每秒 5 次

(100 秒期間的平均次數)

要求限制

限制
修訂版本以外的要求大小5 10 MiB

變更串流限制

限制
每個資料庫變更串流 10
變更觀看任何指定非鍵資料欄的串流6 3
每個變更串流資料分割區的並行讀取器7 20

Data Boost 限制

限制
每個專案在 us-central1 中的並行 Data Boost 要求 1000 8
其他區域中每個專案每個區域的並行 Data Boost 要求 400 8

預先分割 API 限制

限制
每個 API 要求新增的分割點 100
分割點 API 請求大小 1 MiB
執行個體中所有資料庫的每個節點新增分割點 50
每個節點每分鐘新增或更新的分割點 10
每天每個節點新增或更新的分割點 200

附註

1. 為確保資料庫存取作業的高可用性及低延遲時間,Spanner 會根據執行個體的運算能力定義儲存空間限制:

  • 如果執行個體的處理單元少於 1 個節點 (1,000 個處理單元),Spanner 會為資料庫中每 100 個處理單元分配 1024.0 GiB 的資料。
  • 如果執行個體有 1 個以上的節點,Spanner 會為每個節點分配 10 TiB 的資料。

舉例來說,如要為 1500 GiB 的資料庫建立執行個體,您需要將運算資源設為 200 個處理單元。在資料庫成長到超過 2048.0 GiB 之前,這個運算容量可確保執行個體不超過限制。當資料庫達到這個大小時,您就必須再新增 100 個處理單元,好讓資料庫能繼續成長。否則,資料庫的寫入作業可能會遭到拒絕。詳情請參閱「資料庫儲存空間用量建議」。

為確保資料庫能順利成長,請在資料庫達到上限前新增運算容量。

2. 計算異動數時,應將插入和更新作業數乘以受到這兩項作業影響的欄數,且主鍵欄一律會受到影響。舉例來說,在您插入一筆新記錄時,如果資料值是插入至五個資料欄,系統可能會計為五次異動。如果記錄有兩個主鍵欄,更新記錄中的三個資料欄也可能會計為五次異動。不過,以刪除作業和刪除範圍作業來說,無論受影響的資料欄數量為何,系統只會計為一次異動。從含有 ON DELETE CASCADE 註解的上層資料表中刪除資料列時,無論交錯的子資料列數量為何,系統同樣只會計為一次異動。例外狀況如下:如果您要刪除的資料列已定義次要索引,則對次要索引所做的變更會單獨計算。舉例來說,如果資料表有 2 個次要索引,刪除資料表中的資料列範圍會計為 1 個資料表突變,加上每個刪除的資料列 2 個突變,因為次要索引中的資料列可能會分散在鍵空間中,導致 Spanner 無法對次要索引呼叫單一刪除範圍作業。次要索引包含外部索引鍵支援索引

如要找出交易的突變次數,請參閱「 擷取交易的修訂統計資料」。

變更串流不會新增任何計入這項限制的突變。

3. 管理動作要求限制不適用於修訂版本、注意事項 5 中所列的要求,以及結構定義變更。

4. 此頻率限制適用所有對 Admin API 的呼叫,包括對執行個體、資料庫或備份的長時間執行作業輪詢呼叫。

5. 此限制適用的要求包括建立資料庫、更新資料庫、讀取、串流讀取、執行 SQL 查詢,以及執行串流 SQL 查詢。

6. 如果變更串流監控整個資料表或資料庫,系統會隱含監控該資料表或資料庫中的每個資料欄,因此會計入這項限制。

7. 無論讀取器是 Dataflow 管道或直接 API 查詢,這個限制都適用於相同變更串流分割區的並行讀取器。

8. 預設限制會因專案和區域而異。詳情請參閱「監控及管理 Data Boost 配額用量」。

9. 計入的結構定義物件包括 DDL 中描述的所有物件類型,例如資料表、資料欄、索引、序列等。結構定義物件限制是在執行個體層級強制執行,且取決於執行個體可用的處理單元。

  • 對於一個節點以上的執行個體,預設限制為一百萬個物件。
  • 如果執行個體小於一個節點 (1,000 個處理單元),限制會隨著執行個體大小成比例減少。舉例來說,如果執行個體有 100 個處理單元,則架構物件的上限為 100,000 個。

如要查看資料庫的架構物件計數和執行個體的物件限制,請在 Metrics Explorer 中尋找指標 spanner.googleapis.com/instance/schema_objectsspanner.googleapis.com/instance/schema_object_count。如要進一步瞭解如何監控執行個體,請參閱「使用 Cloud Monitoring 監控執行個體」。

如果達到上限,Spanner 會禁止您執行超出上限的操作,例如: