gpt4 book ai didi

azure - 在 Mongodb API 查询中使用投影时对 Cosmos DB RU 有何影响

转载 作者:行者123 更新时间:2023-12-02 06:59:07 24 4
gpt4 key购买 nike

我找不到任何关于“item size ”是指原始文档大小还是投影后查询结果大小的信息。

我可以观察到像这样的简单查询

 documents.find({ /*...*/ }, { name: 1 })

对于 400 个项目的结果,消耗超过 1000 RU(查询字段已建立索引)。原始文档相当大,大约 500 kb。由于投影,实际接收到的数据很小。如果我删除投影,查询会运行几秒钟,但不会消耗更多的 RU(实际上稍微多一点,但这似乎是因为它被分成更多的 GetMore 调用)。

enter image description here

对我来说,这听起来很奇怪,查询的成本主要取决于集合中原始文档的大小,而不是检索的数据。这是真的吗?我可以在不将数据拆分为多个集合的情况下降低此查询的成本吗?逻辑基本上是:“只需获取集合中所有这些大文档的‘名称’即可”。

(数据库上没有分区...)

最佳答案

不幸的是,微软似乎没有发布他们确定 RU 成本的公式,只是进行了广泛的描述。他们确实提到了RU considerations :

As the size of an item increases, the number of RUs consumed to reador write the item also increases

因此,成本取决于项目的原始大小,而不仅仅是读取操作输出的部分。如果您使用数据资源管理器运行一些查询并检查查询统计信息,您将看到两个指标:检索文档大小输出文档大小。通过投影属性的子集,可以减少输出大小,但不会减少检索的大小。在对我的数据进行的测试中,我发现通过选择返回属性,RU 费用有非常小的减少 - 绝对不是与减少的输出成比例的节省。

从根本上说,无论是在属性数据大小还是属性数量方面,缩小项目可能是最重要的工作。如果可以避免的话,您绝对不需要 500 KB 的项目。

关于azure - 在 Mongodb API 查询中使用投影时对 Cosmos DB RU 有何影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66320274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com