正如我所理解的,当您执行一个不按一个主键过滤的查询时,您将执行一个跨分区查询。要执行此操作,查询将发送到CDB集合的所有物理分区,并在每个分区中并行执行,然后返回。
当您扩展到每秒数万个请求时,这意味着在每个物理分区上执行成千上万个请求中的每一个。
是否意味着每个分区最终将达到每秒请求的极限,而水平扩展将不再带来任何好处?,因为对于每个新的物理分区,CDB将需要服务所有传入的请求,因此它不会在整个容量中添加新的内容,只添加存储。
下游的含义是,即使在较小的范围内,您也可以增加跨分区查询的RU成本,真正能够无限期地扩展您的数据模型应该确保查询只命中一个分区(可能是通过反错)。
发布于 2020-12-19 00:35:16
是的,跨分区查询将不允许像Cosmos DB这样的数据库(或任何水平可伸缩的数据库)进行扩展。
像Cosmos DB这样的数据库提供无限的规模,因为它是水平扩展的。分区策略的目标应该是使用一个或至少一个有界分区集来回答您的高容量查询。围绕分区策略的工作是选择一个几乎总是在查询中传递的属性。去规范化通常更多地是围绕请求对数据建模的一种功能。它与直接分区的关系不大。
如果您想了解有关使用Cosmos DB进行分区和建模的更多信息,我强烈建议您观看此视频。它很好地展示了主题,数据建模和分区:每个关系数据库开发人员都需要知道的内容
https://stackoverflow.com/questions/65365002
复制相似问题