

# 了解不同场景下的 DynamoDB 热吞吐量
<a name="warm-throughput-scenarios"></a>

以下是您在使用 DynamoDB 热吞吐量时可能会遇到的一些不同场景。

**Topics**
+ [热吞吐量和不均匀的访问模式](#warm-throughput-scenarios-uneven)
+ [预置表的热吞吐量](#warm-throughput-scenarios-provisioned)
+ [按需表的热吞吐量](#warm-throughput-scenarios-ondemand)
+ [配置了最大吞吐量的按需表的热吞吐量](#warm-throughput-scenarios-max)

## 热吞吐量和不均匀的访问模式
<a name="warm-throughput-scenarios-uneven"></a>

表的热吞吐量可能为每秒 30000 个读取单位和每秒 10000 个写入单位，但在达到这些值之前，读取或写入仍可能受到节流。这可能是由于热分区造成的。虽然 DynamoDB 可以保持扩展以支持几乎无限的吞吐量，但每个分区都限制为每秒 1000 个写入单位和每秒 3000 个读取单位。如果应用程序将过多的流量带到表的一小部分分区，则甚至在达到表的热吞吐量值之前就可能发生节流。我们建议遵循 [DynamoDB 最佳实践](bp-partition-key-design.md)，以确保无缝可扩展性并避免热分区。

## 预置表的热吞吐量
<a name="warm-throughput-scenarios-provisioned"></a>

假设一个预置表，它的热吞吐量为每秒 30000 个读取单位和每秒 10000 个写入单位，但目前具有的预置吞吐量为 4000 个 RCU 和 8000 个 WCU。通过更新预置吞吐量设置，可以立即将表的预置吞吐量扩展到 30000 个 RCU 或 10000 个 WCU。当您将预置吞吐量增加到超过这些值时，热吞吐量将自动调整为新的更高值，因为您已经建立了新的峰值吞吐量。例如，如果您将预置吞吐量设置为 50000 RCU，则热吞吐量将增加到每秒 50000 个读取单位。

```
"ProvisionedThroughput": 
    {
        "ReadCapacityUnits": 4000,
        "WriteCapacityUnits": 8000 
    }
"WarmThroughput": 
    { 
        "ReadUnitsPerSecond": 30000,
        "WriteUnitsPerSecond": 10000
    }
```

## 按需表的热吞吐量
<a name="warm-throughput-scenarios-ondemand"></a>

新的按需表将以每秒 12000 个读取单位和每秒 4000 个写入单位的热吞吐量开始。表可以立即容纳高达这些级别的持续流量。当请求超过每秒 12000 个读取单位或每秒 4000 个写入单位时，热吞吐量将自动调整为更高的值。

```
"WarmThroughput": 
    { 
        "ReadUnitsPerSecond": 12000,
        "WriteUnitsPerSecond": 4000
    }
```

## 配置了最大吞吐量的按需表的热吞吐量
<a name="warm-throughput-scenarios-max"></a>

考虑一个按需表，其热吞吐量为每秒 30000 个读取单位，但[最大吞吐量](on-demand-capacity-mode-max-throughput.md)配置为 5000 个读取请求单位（RRU）。在这种情况下，表的吞吐量将限制在您设置的最大 5000 个 RRU 范围内。任何超过此最大值的吞吐量请求都将受到限制。但是，可以根据应用程序的需要，随时修改表特定的最大吞吐量。

```
"OnDemandThroughput": 
    {
        "MaxReadRequestUnits": 5000,
        "MaxWriteRequestUnits": 4000
    }
"WarmThroughput": 
    { 
        "ReadUnitsPerSecond": 30000,
        "WriteUnitsPerSecond": 10000
    }
```