配额和限制

本页面介绍 Spanner 在生产环境中的配额和限制。配额 和限制在 Google Cloud 控制台中可以互换使用。

配额和限制值随时可能更改。

拥有查看和修改配额的权限

如需查看配额,您必须拥有serviceusage.quotas.get Identity and Access Management (IAM) 权限。

要更改配额,您必须拥有 serviceusage.quotas.update IAM 权限。默认情况下, 以下预定义角色:Owner、Editor 和 配额管理员。

这些权限默认包含在 基本 IAM 角色 Owner 和 Editor,以及预定义的 Quota Administrator 角色

查看您的配额

如需查看您项目中当前的资源配额,请使用 Google Cloud 控制台:

转到“配额”

增加您的配额

随着 Spanner 使用量逐步增加,您的配额 会相应地增加如果您预计自己的用量即将显著增加, 应提前几天提出申请,以确保您的配额 大小适宜。

您可能还需要提高使用方配额覆盖值。有关 信息,请参阅创建使用方配额替换值

您可以增加当前的 Spanner 实例配置节点 使用 Google Cloud 控制台监控存储空间上限

  1. 转到配额页面。

    转到“配额”页面

  2. 服务下拉列表中选择 Spanner API

    如果您没有看到 Spanner API,则表明 Spanner API 尚未启用。如需了解详情,请参阅启用 API

  3. 选择要更改的配额。

  4. 点击修改配额

  5. 在随即显示的配额更改面板中,输入新的配额限制。

    实例创建窗口的屏幕截图

  6. 点击完成,然后点击提交请求

    如果您无法手动将节点限制提高到所需的限制, 点击申请更高配额。填写表单以提交请求至 Spanner 团队。您会在 48 小时内收到回复 部分。

增加自定义实例配置的配额

您可以增加自定义实例配置的节点配额。

  1. 通过检查节点来检查自定义实例配置的节点限制 基本实例配置的限制。

    使用显示实例配置详情 该命令,如果您不知道或不记得 配置您的自定义实例配置。

  2. 如果自定义实例配置所需的节点限制低于 请按照上述增加配额部分中的说明进行操作 部分。使用 Google Cloud 控制台提高 与您的自定义实例关联的基本实例配置 配置。

    如果自定义实例配置所需的节点限制高于 请填写申请增加 Spanner 节点配额 表单。在表单中指定自定义实例配置的 ID。

节点限制

限额
每个实例配置的节点数

默认限额因项目和实例配置而异。接收者 更改项目配额限制或申请提高限制,请参阅 提高 配额

实例限制

限制
实例 ID 长度 2 到 64 个字符

免费试用实例限制

Spanner 免费试用实例 并具有以下额外限制要提高或移除这些限制,请升级您的 从免费试用实例转换为付费实例。

限额
存储空间容量 10 GB
数据库限制 最多可创建 5 个数据库
不受支持的功能 备份和恢复
服务等级协议 无服务等级协议 (SLA) 保证
试用期 90 天免费试用期

实例配置限制

限额
每个项目的自定义实例配置数量上限 100
自定义实例配置 ID 长度

8 到 64 个字符

自定义实例配置 ID 必须以 custom- 开头

地理位置分区限制

限额
每个实例的分区数上限 10
分区中每个节点的展示位置行数上限9 2000 万

数据库限制

  • 对于 1 个节点(1,000 个处理单元)或更大节点的实例: 每个节点 4 TB
  • 对于少于 1 个节点的实例: 每 100 次处理 409.6 GB 单位

存储空间容量增加到 10 TB 在部分单区域和多区域位置可用 Spanner 实例配置。如需更多信息 请参阅性能和存储空间方面的改进

备份单独存储,不 也会计入这一限额如需了解详情,请参阅存储空间利用率指标

请注意,Spanner 对 而不是其可用的总存储空间

限制
每个实例的数据库数
  • 对于 1 个节点(1000 个处理单元)和更大的实例:100 个数据库
  • 对于小于 1 个节点的实例:每 100 个处理单元 10 个数据库
每个数据库的角色数 100
数据库 ID 长度 2 到 30 个字符
存储空间使用量1

备份和恢复限制

限制
每个数据库正在进行的“创建备份”操作数 1
每个实例正在进行的“恢复数据库”操作数(在恢复的数据库实例中,而不是在备份中) 10
备份的最长保留时间 1 年(包括闰年多出的一天)

架构限制

DDL 语句

限制
单个架构更改的 DDL 语句大小 10 MB
数据库整个架构的 DDL 语句大小(由 GetDatabaseDdl 返回) 10 MB

限制
每个数据库的表数 5,000
表名称长度 1 到 128 个字符
每个表的列数 1024
列名称长度 1 到 128 个字符
每个单元格的数据大小 10 MB
表键中的列数

16

包括与任何父表共享的键列

表交错深度

7

包含子表的顶层表的深度为 1。

包含孙表的顶层表的深度为 2,以此类推。

表键或索引键的总大小

8 KB

包括构成相应键的所有列的大小

非键列的总大小

1600 MB

包含表的所有非键列的大小

索引

限制
每个数据库的索引数 1 万
每个表的索引数 128
索引名称长度 1 到 128 个字符
索引键中的列数

16

编入索引的列的数量(STORING 列除外)加上基表中主键列的数量

视图

限制
每个数据库的视图数 5,000
视图名称长度 1 到 128 个字符
嵌套深度

10

对于引用其他视图的视图,其嵌套深度为 1。对于引用其他视图并且该视图又引用另外视图的视图,其嵌套深度为 2,以此类推。

查询限制

限制
一个 GROUP BY 子句中的列数 1,000
IN 运算符中的值 10,000
函数调用次数 1,000
联接 20
嵌套函数调用次数 75
嵌套 GROUP BY 子句数量 35
嵌套子查询表达式数量 25
嵌套子选择语句数 60
参数数量 950
查询语句长度 1 百万个字符
STRUCT 个字段 1,000
子查询表达式子项数 50
查询中的 union 数 200

创建、读取、更新和删除数据的限制

限额
提交大小(包括索引和变更数据流) 100 MB
每个会话的并发读取数 100
每次提交包含的更改数(包括索引)2 80000
每个数据库的并发分区 DML 语句数 20000

管理限制

限制
管理操作的请求大小3 1 MB
管理操作的速率限制4

每位用户每个项目每秒 5 次

(按 100 秒计算得到的平均值)

请求限制

限额
请求大小(提交除外)5 10 MB

变更数据流限制

限额
每个数据库的变更数据流 10
观察任何给定非键列的变更流6 3
每个变更数据流数据分区的并发读取器数量7 5

流量提升限制

限额
并发 Data Boost 请求8 200

备注

1. 为了保证数据库访问的高可用性和低延迟 Spanner 根据 实例:

  • 对于小于 1 个节点(1,000 个处理单元)的实例, Spanner 分配了 409.6 GB 数据库中每 100 个处理单元处理的数据量。
  • 对于具有 1 个或更大节点的实例,Spanner 会配额 每个节点 4 TB 的数据。

例如,要为 600 个 GB 数据库,则需要 将其计算容量设置为 200 个处理单元这些计算量 将保持 实例数低于限制值 直到数据库大小超过 819.2 GB。在 您需要再添加 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. 大多数分区的每个节点有 2000 万行 上限。使用 us-west4nam10、 和 nam-eur-asia1 配置有 1000 万行/ 节点数上限。