首页 文章

Azure DocumentDB数据建模,性能和价格

提问于
浏览
1

我是NoSQL类型数据库的新手,包括Azure的DocumentDB . 我已经阅读了文档并了解了基础知识 .

文档给我留下了一些关于数据建模的问题,特别是它与定价的关系 .

如果我理解正确,Microsoft会在“每个集合”的基础上收取费用,集合是没有特定架构的JSON对象列表 .

现在,由于不需要统一模式,期望您的“集合”类似于“数据库”,因为集合本身可能包含不同类型的对象?或者期望每个“集合”类似于“表”,因为它仅包含相似类型的对象(可能允许对象属性的变化) .

查询性能是否以这种或那种方式指示?

感谢您的任何见解!

2 回答

  • 3

    DocumentDB下的常规模式是在同一个"collection"中存储许多不同类型的对象 . 您可以通过字段 type = "MyType"isMyType = true 来区分它们 . 后者允许子类化和mixin行为 .

    至于性能,DocumentDB为您选择的吞吐量提供有保证的10ms读取/ 15ms写入延迟 . 对于您的 生产环境 系统,将所有内容放在一个大的“分区集合”中,随着空间需求和负载需求随着时间的推移滑动大小和吞吐量杠杆 . 您将获得基本上无限的可伸缩性,并且当您增加(或减少)吞吐量和大小杠杆时,DocumentDB将负责分配(和解除分配)资源(辅助,分区等) .

  • 3

    集合类似于数据库,而不是关系表 . 通常,您可以在文档中存储 type 属性以区分类型,并在限制为某种类型时为每个查询添加 AND type='MyType' 过滤器 .

    如果在同一集合中存储不同类型的文档与不同集合,则查询性能不会有显着差异,因为您只是针对索引属性(类型)添加另一个过滤器 . 但是,您可能会将吞吐量汇集到单个集合中,而不是为每个类型/集合传播少量吞吐量 .

相关问题