Azure Cosmos DB Mongo API投影对请求单元(RU)收费的影响问询
问题解答
RU消耗的影响因素
- 影响RU消耗的维度同时包含存储侧的读取开销和实际返回的文档大小开销:
- 查询定位阶段的开销:和查询条件是否命中索引、需要扫描的存储数据量相关,这部分和返回字段无关,你给出的两条查询在这个阶段的开销是一致的。
- 结果处理阶段的开销:命中目标文档后,需要读取对应字段内容、序列化、完成网络传输,这部分开销和实际返回的 payload 大小正相关。
投影查询对RU的影响
仅返回一级属性、排除大体积的associations数组的场景,确实可以降低RU消耗:
你给出的示例文档总大小500KB,几乎所有体积都来自associations数组,无投影查询需要读取并返回整个500KB的文档,而带投影的查询仅需要读取并返回name、_id、data三个小字段,返回的payload大小通常不到1KB,结果处理阶段的开销会大幅降低,因此两条查询的RU消耗会存在明显差异,你实际测试的结果完全符合RU的计费逻辑。
优化建议
如果这类查询是高频场景,可以为name、data字段建覆盖索引,查询时直接从索引中获取所需字段,不需要读取完整的存储文档,可以进一步降低RU消耗。
内容的提问来源于stack exchange,提问作者Guru
相关产品推荐
相关产品推荐

