其他条件一致时,更细粒度的partition key是否会影响RU成本?
核心结论
在你给出的前提条件下,是否存在RU成本差异,完全取决于查询筛选字段是否配置了对应索引:
情况1:Amount字段已配置符合要求的范围索引
无RU成本差异。
这个指定了精确分区键的查询会直接命中对应逻辑分区的索引,通过索引直接定位满足Amount > 100的文档,不需要扫描该分区键下的所有文档。在返回结果数量固定的前提下,索引查找、结果序列化的开销都是固定的,和该分区键下总共存储了数千还是数十万份文档没有关系。
情况2:Amount字段未配置对应索引,查询触发全逻辑分区扫描
存在明显的RU成本差异。
没有索引的情况下,数据库需要扫描该分区键下的所有文档逐一判断是否符合Amount > 100的条件。单个分区键对应的文档数量越多,需要扫描的文档数就越大,消耗的RU也就越高,哪怕最终返回的结果数完全一致。
额外注意事项
就算在有索引的场景下RU没有差异,也不建议使用粒度过粗的分区键:
- 单个逻辑分区(单个分区键值对应的所有数据)有20GB的存储上限,超过上限后该分区键将无法继续写入数据
- 后续如果业务量增长需要拆分物理分区时,粒度过粗的分区键无法被拆分,容易导致物理分区热点,影响整体性能
内容的提问来源于stack exchange,提问作者tlt
相关产品推荐
相关产品推荐

