我正计划使用Cosmos Db(文档Db),我试图了解查询,索引和分区如何相互关联.
如何在Azure Cosmos中分区和扩展Db谈论分区键和其他文档表明分区键+ id =文档的唯一ID.但是,Azure Cosmos Db中的SQL查询和SQL语法表明它提供了JSON文档的自动索引,而无需显式模式或创建二级索引.
我知道分区键对于可伸缩性和数据存储方式很重要.但是,如果我们考虑搜索是分区键类似额外的filter/where子句?所有文档都被编入索引,因此我可以执行以下查询:
SELECT *
FROM Families
WHERE Families.address.state = "NY"
Run Code Online (Sandbox Code Playgroud)
我是否仍应指定分区键或指示在使用此SQL查询语法时允许跨分区查询的方式?
您的第一个链接为此提供了答案:
对于分区集合,您可以使用PartitionKey对单个分区运行查询(尽管Cosmos DB可以从查询文本中自动提取),而EnableCrossPartitionQuery可以运行可能需要针对多个分区运行的查询.
所以,是的,您需要指定WHERE将对单个分区运行查询的子句,或者在查询选项中设置EnableCrossPartitionQuery为true.
| 归档时间: |
|
| 查看次数: |
2617 次 |
| 最近记录: |