Nosql 跨分区查询会破坏无限的CosmosDB水平可伸缩性吗?

Nosql 跨分区查询会破坏无限的CosmosDB水平可伸缩性吗?,nosql,azure-cosmosdb,distributed-database,Nosql,Azure Cosmosdb,Distributed Database,据我所知,当您执行不按一个主键过滤的查询时,您将执行跨分区查询。为了执行该查询,将查询发送到CDB集合的所有物理分区,在每个物理分区中并行执行,然后返回 当您扩展到每秒数万个请求时,这意味着数万个请求中的每一个都在每个物理分区上执行 这是否意味着最终每个分区将达到其每秒可服务请求的限制,而水平扩展将不再带来任何好处?因为对于CDB添加的每个新物理分区,它将需要服务所有传入的请求,因此它不会添加新的整个容量,而只添加存储 下游含义是,即使在小范围内,您也可以承受跨分区查询增加的RU成本,为了真正能

据我所知,当您执行不按一个主键过滤的查询时,您将执行跨分区查询。为了执行该查询,将查询发送到CDB集合的所有物理分区,在每个物理分区中并行执行,然后返回

当您扩展到每秒数万个请求时,这意味着数万个请求中的每一个都在每个物理分区上执行

这是否意味着最终每个分区将达到其每秒可服务请求的限制,而水平扩展将不再带来任何好处?因为对于CDB添加的每个新物理分区,它将需要服务所有传入的请求,因此它不会添加新的整个容量,而只添加存储


下游含义是,即使在小范围内,您也可以承受跨分区查询增加的RU成本,为了真正能够无限期地扩展您的数据模型,您应该确保查询只命中一个分区(可能通过对其进行非规范化)。

是,跨分区查询将不允许像Cosmos DB这样的数据库(或任何水平可伸缩的数据库)进行扩展

像COSMOSDB这样的数据库提供了无限的规模,因为它可以水平扩展。分区策略的目标应该是用一个或至少一组有界分区来回答高容量查询。围绕分区策略的工作是选择一个几乎总是在查询中传递的属性。非规范化通常更多地是围绕请求建模数据的功能。它与直接分区的关系不大

如果您想了解更多有关Cosmos DB分区和建模的信息,我强烈建议您观看此视频。它很好地呈现了主题