【发布时间】:2019-01-11 17:06:10
【问题描述】:
According to docs,属性 id 在 Azure CosmosDB 文档中是特殊的,因为它必须始终设置并且每个分区具有唯一值。它的内容也有额外的限制:
以下字符受限,不能在Id中使用 属性:'/'、'\'、'?'、'#'
显然,该字段是文档“键”之一(除了_rid),并以某种方式用于内部管道。除了上述限制之外,目前尚不清楚这个密钥在内部是如何使用的,更重要的是对于从业者来说,哪些值在技术上比其他值构成更好的 id?
猜测 1: 例如,在某些 DB 世界中,人们会更喜欢短主键值,因为 PK 将包含在索引条目中,而较短的键将允许更紧凑的索引用于存储和抬头。除了一次性存储成本之外,id 字段长度是否重要?
猜测 2: 在某些系统中,如果在名称中避免使用公共前缀(即azure storage container/blob names),甚至建议添加一个小的随机散列作为前缀,则可以实现更好的吞吐量。 cosmosDB 是否关心 id 前缀的相似性?
还有什么值得考虑的吗?
编辑:澄清一下,我对 cosmosDB 服务器存储/执行方面的好处感兴趣,前提是我的数据模型仍在设计中和/或有多个可用的键可供数据设计人员选择来自。
【问题讨论】:
标签: azure-cosmosdb