首页 > 解决方案 > 如何选择索引键,我们是否应该考虑来自 GROUPBY 的键也与 WHERE 键或仅与 WHERE 键一起使用?

问题描述

假设文档示例模式

{
  "wherek1":"",
  "pk":""
  "groubby1":"",
  "groupby2":"",
  "count": 0
}

假设选择查询

SELECT SUM(f.count) as outCount FROM TEST f WHERE f.pk='testk' and f.wherek1='hi' GROUP BY f.groubby1, f.groubby2

对于上面的查询字段应该被索引的是

> pk/*
> wherek1/*
> groubby1/*
> groubby2/*

我的理解正确吗?

谢谢

标签: azure-cosmosdb

解决方案


按属性添加分组不会产生任何好处。只有那些在 where、order by 或 join 子句中使用的属性才能看到被索引的好处。

要记住的一件事是,在 group by 中使用的属性上具有高基数的容器可能会变得昂贵。如果您计划经常运行这样的查询,您可能需要考虑使用 Change Feed 构建物化视图。

一些可能有用的链接。

使用 Group By 的查询

Lenni Lobel 关于更改提要的博客

谢谢。


推荐阅读