Azure cosmosdb 默认情况下Cosmos DB索引是否在范围内?

Azure cosmosdb 默认情况下Cosmos DB索引是否在范围内?,azure-cosmosdb,Azure Cosmosdb,我有一个大约4gb的cosmos db,当它很小的时候,它可以相对快速地执行数据过滤,RU值很低(3-15ish),但是随着db已经增长到包含数百万条记录,它现在的速度已经减慢,RU值上升了数千条 查看文档中的日期是 要高效地执行这些查询,必须配置 用于对字符串进行范围索引的集合 但是,在读取链接索引策略文档()时,默认情况下每个字段都会创建一个范围索引 新创建的容器的默认索引策略索引每个项的每个属性,为任何字符串或数字强制执行范围索引,并为任何Point类型的GeoJSON对象强制执行空间索引

我有一个大约4gb的cosmos db,当它很小的时候,它可以相对快速地执行数据过滤,RU值很低(3-15ish),但是随着db已经增长到包含数百万条记录,它现在的速度已经减慢,RU值上升了数千条

查看文档中的日期是

要高效地执行这些查询,必须配置 用于对字符串进行范围索引的集合

但是,在读取链接索引策略文档()时,默认情况下每个字段都会创建一个范围索引

新创建的容器的默认索引策略索引每个项的每个属性,为任何字符串或数字强制执行范围索引,并为任何Point类型的GeoJSON对象强制执行空间索引

我是否需要将索引配置为默认值以外的其他值

{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
    {
        "path": "/*"
    }
],
"excludedPaths": [
    {
        "path": "/\"_etag\"/?"
    }
]

}

在索引方面,您可以从

您应该从索引中排除未使用的路径,以加快写入速度。 您应该利用包含路径和排除路径的索引策略

例如:

var collection = new DocumentCollection { id = "excludedPathCollection"};
collection.IndexingPolicy.IncludedPaths.Add(new IncludedPath { Path = "/*" });
collection.IndexingPolicy.ExcludedPaths.Add(new ExcludedPath { Path = "/nonIndexedContent/*");

因此,如果您关心查询成本,索引将不会真正有帮助。写入成本取决于索引,而不是读取。如果您看到每个请求有数千个RU,我怀疑您是在使用跨分区查询,或者根本没有分区(或者每个请求都有一个分区)。要降低这些成本,您需要停止使用跨分区查询,或者(如果前者不可能)以不需要使用跨分区查询的方式重新构建数据

我认为范围是cosmos db中的默认索引