为何我的DynamoDB表满足单分区能力却生成2个分区?
DynamoDB分区数计算疑问解答
- 明确单分区的吞吐量上限:每个DynamoDB分区最多支持3000 RCU和1000 WCU,两者可同时达到上限,单分区不会因同时满额使用读写容量而强制拆分。
- 正确的分区数计算逻辑:
- 数据量维度:总数据量除以10GB后向上取整(你的数据量远低于10GB,此维度对应1个分区)
- 吞吐量维度:分别计算
总RCU / 3000和总WCU / 1000,取两者的最大值并向上取整(你的配置下两者结果均为1,此维度对应1个分区) - 最终分区数取上述两个维度的最大值,即1个分区。
- 你得到2个分区结果的可能原因:
- 错误的计算方式:若将RCU和WCU对应的分区数相加(1+1=2),会得出错误结果,正确逻辑是取最大值而非求和。
- 哈希键分布不均引发的自动调整:如果数据哈希键分布极度不均匀,DynamoDB可能自动创建额外分区缓解热点,但这属于系统动态调整,并非基于初始配置的计算结果。
- 显示误差:部分第三方工具或控制台可能显示预留分区数,而非实际活跃的分区数量。
内容的提问来源于stack exchange,提问作者Anik Banerjee
相关产品推荐
相关产品推荐

