[英]Partition key for Azure Cosmos DB collection
我对Azure Cosmos DB有点陌生,并试图理解这些概念。
我需要帮助来确定DocumentDB集合的最佳最佳分区键。 请参考下图,其中可能有使用不同分区键的分区。
由于在博客帖子中提到这里 ,
理想的分区键是在查询中经常作为过滤器出现的分区键,并且具有足够的基数以确保您的解决方案可扩展。
从上面这一行,我认为,就我而言,UserId可以用作分区键。
有人可以建议我哪个密钥是分区密钥的最佳候选者吗?
从有关DocumentDB Partitioned Collections和微型正式文档的10件事中 ,您可以找到很多有关选择分区键的很好的建议,因此在此不再赘述。
分区键的选择取决于数据库中存储的数据和频繁查询过滤条件。
通常建议对像userid
这样的东西进行分区,如果有的话,这是很好的。 假设您的业务逻辑对给定的userid
有很多查询,并且希望查找的条目不超过几百个。 在这种情况下,可以从单个分区中快速提取数据,而不必在多个分区中整理数据。
但是,如果您有数百万条user
记录,那么对userid
进行分区可能是最糟糕的选择,因为从单个分区中提取大量数据将很快超过整理的开销。 在这种情况下,您希望在所有分区上尽可能均匀地分布用户数据。 您可能需要找到另一列作为分区键。
因此,如果数据量很大,建议您根据业务逻辑进行一些简单的测试,并为性能选择最佳的分区键。 毕竟,分区密钥一旦设置便无法更改。
希望对您有帮助。
这取决于,但是这里有几件事情要考虑:
您提到的博客文章说:
此外,属于相同分区键的文档的存储大小限制为10GB。 理想的分区键是在查询中经常作为过滤器出现的分区键,并且具有足够的基数以确保您的解决方案可扩展。
另外,我真的建议您查看这篇文章和视频, https://docs.microsoft.com/zh-cn/azure/cosmos-db/partition-data ,
分区键的选择是您在设计时必须做出的重要决定。 您必须选择一个属性值,该属性值的范围很广,甚至具有访问模式。
因此,请确保选择具有许多值并满足那些要求的分区键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.