【发布时间】:2020-01-03 13:48:49
【问题描述】:
我正在从我的 .NET Core 应用程序中查询 Cosmos DB 集合。现在我想知道,我如何为查询提供分区键是否有任何区别(即:最好以一种方式而不是另一种方式来做)?
下面,region 是我的分区键。
一)
var queryString = $"SELECT TOP 100 * FROM c WHERE c.region ='{region}'";
var query = this.container.GetItemQueryIterator<Item>(new QueryDefinition(queryString));
b)
var queryString = "SELECT TOP 100 * FROM c";
var query = this.container.GetItemQueryIterator<Item>(new QueryDefinition(queryString), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey(region) });
至少 RU(请求单位)似乎是相同的,所以 Cosmos DB 内部可能无论如何都会优化查询并将 a) 重写为 b) 或反之亦然?!
【问题讨论】:
标签: c# azure azure-cosmosdb