

# 在 DynamoDB 中切换容量模式时的注意事项
<a name="bp-switching-capacity-modes"></a>

创建 DynamoDB 表时，您必须选择按需容量模式或预置容量模式。

在 24 小时滚动窗口内，表最多可以从预置容量模式切换到按需模式四次。您可以随时将表从按需模式切换到预置容量模式。

**Topics**
+ [

## 从预置容量模式切换到按需容量模式
](#switch-provisioned-to-ondemand)
+ [

## 从按需容量模式切换到预置容量模式
](#switch-ondemand-to-provisioned)

## 从预置容量模式切换到按需容量模式
<a name="switch-provisioned-to-ondemand"></a>

在预置模式下，您可以根据预期的应用程序需求设置读取和写入容量。​当您将表从预置模式更新为按需模式时，您无需指定预期应用程序执行的读写吞吐量。DynamoDB 按需模式针对读取和写入请求提供简单的按请求支付定价，以便您只需为使用的资源付费，这样就可以轻松平衡成本与性能。您可以选择为各个按需表和关联全局二级索引配置最大读取和/或写入吞吐量，来协助限制成本和用量。有关为特定表或索引设置最大吞吐量的更多信息，请参阅[DynamoDB 按需表的最大吞吐量](on-demand-capacity-mode-max-throughput.md)。

当您从预置容量模式切换到按需容量模式时，DynamoDB 会对表和分区的结构进行若干更改。此过程可能耗时数分钟。在切换期间，您的表将提供与先前预置的写入容量单位和读取容量单位数量相一致的吞吐量。

### 按需容量模式的最初吞吐量
<a name="initial-throughput-ondemand-mode"></a>

如果您最近首次将现有表切换为按需容量模式，则该表将具有下面的先前峰值设置，即使该表之前尚未使用按需容量模式提供流量也是如此。

以下是可能的场景示例：
+ **任何配置为低于 4000 WCU 和 12000 RCU 的预置表，这些表以前从未配置为更多容量单位。**当您首次将此表切换为按需模式时，DynamoDB 将确保其横向扩展到能够即时维持每秒至少 4000 个写入单位和 12000 个读取单位。
+ **配置为 8000 WCU 和 24000 RCU 的预置表。**当您将此表切换为按需模式时，它将继续能够维持在任何时候均为每秒至少 8000 个写入单位和 24000 个读取单位。
+ **配置了 8,000WCU 和 24,000RCU 的预置表，在维持期间每秒占用 6,000 个写入单位和 18,000 个读取单位。**当您将此表切换为按需模式时，它将继续能够维持为每秒至少 8000 个写入单位和 24000 个读取单位。之前的流量可能进一步允许该表维持相当高的流量水平而不节流。
+ **之前预置了 10,000WCU 和 10,000RCU，但目前预置了 10RCU 和 10WCU 的表。**当您将此表切换为按需模式时，它将能够维持每秒至少 10000 个写入单位和 10000 个读取单位。

### 自动扩缩设置
<a name="autoscaling-settings"></a>

当您将表从预置模式更新为按需模式时：
+ 如果使用控制台，则将删除您的所有自动扩缩设置（如果有）。
+ 如果您使用 AWS CLI 或 AWS SDK，则将保留您的自动扩缩设置。当您再次将表更新为预置的结算模式时，这些设置可能适用。

### 在 [DynamoDB 控制台](https://console.aws.amazon.com/dynamodb)中批量编辑容量模式
<a name="bulk-edit-capacity-mode"></a>

您可以使用 [DynamoDB 控制台](https://console.aws.amazon.com/dynamodb)批量编辑多个表，将其从预置容量模式切换到按需容量模式。要批量编辑容量模式，请执行以下操作：

1. 在 DynamoDB 控制台中，转到**表**页面。

1. 选中要更新为按需容量模式的表的复选框。

1. 选择**操作**，然后选择**更新为按需容量模式**。

通过此批量操作，您可以高效地将多个表切换到按需容量模式，而不必单独更新每个表。

## 从按需容量模式切换到预置容量模式
<a name="switch-ondemand-to-provisioned"></a>

当从按需容量模式切换回预置的容量模式时，表将提供与表设置为按需容量模式时达到的先前峰值一致的吞吐量。

### 管理容量
<a name="switch-ondemand-capacity"></a>

当您将表从按需模式更新为预置模式时，考虑以下事项：
+  如果您使用 AWS CLI 或 AWS SDK，请通过以下方式选择表和全局二级索引的适当预置容量设置：使用 Amazon CloudWatch 查看历史使用情况（`ConsumedWriteCapacityUnits` 和 `ConsumedReadCapacityUnits` 指标）以确定新的吞吐量设置。
**注意**  
如果您将全局表切换为预置模式，则在确定新的吞吐量设置时，请查阅跨基表和全局二级索引的所有区域副本的最大使用量。
+ 如果您要从按需模式切换回预置模式，请确保将初始预置单位设置得足够高，以便在过渡期间处理您的表或索引容量。

### 管理自动扩缩
<a name="switch-ondemand-autoscaling"></a>

当您将表从按需模式更新为预置模式时：
+ 如果您使用控制台，我们建议您使用以下默认值启用自动扩缩：
  + 目标利用率：70%
  + 最小预置容量：5 个单位
  + 最大预置容量：区域最大值
+  如果您使用 AWS CLI 或开发工具包，则将保留您先前的自动扩缩设置（如果有）。