介绍:
- 系统目前由 2 个设备组成。
- 每个设备有 10 个测量数据的节点。该数据每 5 秒写入一次 DB。
- 我目前估计该设置的最大 50:1(读:写)比率。当引入新设备/节点时,这很可能会改变。
- 我目前正在将所有内容嵌入到一个文档中(例如:http: //pastebin.com/4dATY5NF)
- 我的 3 个主要用例是:
- 向数据库添加测量
- 从所有节点获取最后一次测量(对于 5 个节点,这将返回 5 个测量网络)
- 获取给定日期的测量列表(与输入日期/时间标准匹配的长测量列表)。
问题:
我主要关心的是随着时间的推移会大量增长的文档(插入到嵌入式测量数组)以及使测量难以查询给定日期/时间范围的一般文档结构。
例如,即使每 5 秒只有一个节点上报数据,那么嵌入式阵列中的测量总数(仅 1 天)为:24*60*60/5=17280。一个月报告 5 个节点给出: 5 个具有 518400 个元素的嵌入式数组(在一个文档中!)。设备工作的时间越长,它在每个附加节点的嵌入式测量数组中的条目就越多。
问题:
- 估计的读/写比率如何影响嵌入与链接的决策?
在这种情况下,牺牲嵌入并将数据拆分为 2 个集合的所有好处是否合理?
我一直在考虑的是,例如一个用于设备/节点配置的集合(在此处嵌入信息,因为它并不多),而第二个仅用于测量(参考它来自的设备和节点)。我认为这将花费更多对数据库的调用,但在性能和内存使用方面会更好。