gpt4 book ai didi

database - CosmosDB 中 GROUP BY 的索引

转载 作者:行者123 更新时间:2023-12-02 05:57:30 26 4
gpt4 key购买 nike

正如标题所示,我想知道如何为 CosmosDB 中的 GROUP BY 查询创建有效的索引。

假设文档看起来像这样:

{
"pk": "12345",
"speed": 500
},
{
"pk": "6789",
"speed": 100
}

执行查询来找出按分区键分组的速度总和,如下所示:

SELECT c.pk, SUM(c.speed) FROM c WHERE c.pk IN ('12345','6789') GROUP BY c.pk

对于大约 160 万个文档,此查询花费 1489.51 RU。但是,将其分为两个查询,例如:

SELECT SUM(c.speed) FROM c WHERE c.pk = '12345'

SELECT SUM(c.speed) FROM c WHERE c.pk = '6789'

每个项目的成本仅为约 2.8 RU。显然,与 GROUP BY 查询相比,结果需要一些后处理才能匹配。但与 1489 个 RU 相比,总共 5.6 个 RU 是值得的。

集合的索引如下:

{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
}
],
"compositeIndexes": [
[
{
"path": "/pk",
"order": "ascending"
},
{
"path": "/speed",
"order": "ascending"
}
]
]
}

我是否完全错过了一些东西,或者 GROUP BY 怎么会贵这么多?我可以做任何索引来降低它吗?

提前致谢!

最佳答案

目前 GROUP BY 尚未使用索引。

目前正在处理此问题。我会在年底的某个时候再次访问以验证它是否受支持。

关于database - CosmosDB 中 GROUP BY 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69348335/

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