Azure DocumentDB Data Modeling, Performance & Price



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

文档给我留下了一些有关数据建模的问题,尤其是在与价格相关的方面。

Microsoft以"按收集"为基础收取费用,如果我正确理解的话,收集是没有特定架构的JSON对象的列表。

现在,由于没有统一模式的要求,您的"集合"是否与"数据库"相似,因为该集合本身可能包含不同类型的对象?还是期望每个"集合"类似于"表",因为它仅包含相似类型的对象(也许允许对象属性中的差异)。

查询性能是否在这里决定一种或另一种方式?

感谢您的任何见解!

documentDB下的正常模式是将许多不同类型的对象存储在同一"集合"中。您可以通过字段type = "MyType"isMyType = true来区分它们。后者允许子分类和混合行为。

至于性能,DocumentDB可以为您提供10毫秒的读取/15ms的书面延迟。对于您的生产系统,将所有内容放入一个大的"分区收集"中,并随着时间的推移和负载需求而随着时间的流逝,将大小和吞吐量杆滑动。当您增加(或减小)吞吐量和大小杠杆时,您将获得实质上的无限可伸缩性,并且DocumentDB将负责分配(和交易)资源(次要,分区等)。

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

查询性能在同一集合与不同集合中存储不同类型的文档,因为您只是针对索引属性(类型)添加了另一个过滤器,因此不会显着差异。但是,您可能会从将吞吐量集中到一个集合中受益,而对于每种类型/收集的少量吞吐量。

最新更新