gpt4 book ai didi

azure-cosmosdb - 为什么不总是使用 EnableCrossPartitionQuery

转载 作者:行者123 更新时间:2023-12-03 19:30:52 25 4
gpt4 key购买 nike

如果我的 Cosmos DB 有多个分区,是否有任何理由不设置 EnableCrossPartitionQuery ?

我知道如果运行可能会影响多个分区的查询,这是必要的。但是,如果查询使用有效的分区键并且肯定只会命中一个分区,是否会因为我将该标志设置为 true 而导致性能损失或成本增加呢?

最佳答案

But what if the query uses a valid partition key and definitely will only hit one partition, is there any performance loss or increased cost because I set that flag to true?



据我所知,您需要为分区收集设置分区键,即使您仍然设置 EnableCrossPartitionQuery,成本也不会改变。为true。因为请求只扫描您已经设置的特定分区。我做了一个样本测试并尝试验证它。
    FeedOptions feedOptions = new FeedOptions();
PartitionKey partitionKey = new PartitionKey("A");
feedOptions.setPartitionKey(partitionKey);
feedOptions.setEnableCrossPartitionQuery(true);

FeedResponse<Document> queryResults = client.queryDocuments(
"/dbs/db/colls/part",
"SELECT * FROM c",
feedOptions);

System.out.println("Running SQL query...");
for (Document document : queryResults.getQueryIterable()) {
System.out.println(String.format("\tRead %s", document));
}

System.out.println(queryResults.getRequestCharge());

enter image description here

我想也许你不必为这个问题而挣扎。 EnableCrossPartitionQuery仅当分区集合的查询不限于单个分区键值时才需要使用选项。如果您知 Prop 体的分区键,则无需设置 EnableCrossPartitionQuery .

关于azure-cosmosdb - 为什么不总是使用 EnableCrossPartitionQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864553/

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