DynamoDb分区应存储多少条记录?如何判断是否过多?
DynamoDB分区存储与容量判断问题
单个DynamoDB分区可存储的记录数
DynamoDB的分区划分核心依据是存储容量而非记录数量,单个分区的最大存储上限为10GB。结合你的场景计算:
- 单条记录平均500字节,10GB换算为字节是
10 * 1024 * 1024 * 1024 = 10737418240字节 - 理论上单个分区可存储的记录数约为
10737418240 / 500 ≈ 2147万条
但实际中,分区的有效存储量会受预留空间、吞吐量限制影响——如果某分区的读写请求先达到单分区吞吐量上限(默认3000 RCU/1000 WCU),即使存储没到10GB,也会出现限流,相当于无法继续有效存储更多高请求量的记录。
如何判断记录数量/分区负载过多
判断的核心是看存储容量瓶颈和吞吐量瓶颈两个维度:
- 存储容量维度:计算某主键(PK)下的总存储大小,若接近或超过10GB,说明该分区的记录数已达存储上限,必须拆分。
- 吞吐量维度:
- 若持续出现
ProvisionedThroughputExceededException异常,说明该分区的读写请求超过了单分区的吞吐量上限 - 通过监控工具查看
ReadThrottleEvents、WriteThrottleEvents指标,若这些指标持续非零,代表分区负载过高
- 若持续出现
- 结合你的场景:每个用户仅1000条记录,总存储仅500KB,远低于10GB的分区存储上限,所以存储层面不会有问题。但如果某个用户的读写请求量极大(比如每秒数千次),才会触发吞吐量瓶颈,此时需要考虑优化(如使用复合主键拆分分区、调整吞吐量配置等)
内容的提问来源于stack exchange,提问作者Elliveny
相关产品推荐
相关产品推荐

