【发布时间】:2015-07-17 08:58:09
【问题描述】:
我们首次使用 MongoDB 构建一个新系统。我们的主要文档集合之一包含大小可以从几百字节到接近 16MB 文档限制的任意大小的文档。
我们需要跟踪文档被阅读的次数并限制阅读次数。
我们正在权衡两种选择:
- 将读取计数存储为正在计数的文档的一部分
- 将读取计数存储在单独的集合中
第一个的价值在于我们可以一次将计数和数据获取到数据库中。
引起这个问题的部分是文档大小似乎会影响写入性能。但是,我没有找到任何关于这种情况的参考。我们的猜测是,即使我们正在更新单个字段,也必须对整个文档进行反序列化、更新、序列化并写回表中。如果文档大小变化很大,那么性能似乎也会随之变化。此外,集合将被索引,MongoDB 文档说每次更新都需要更新集合上的所有索引。这些加起来就是潜在的性能问题。
如果是这样,那么我们将使用第二个选项并进行两次数据库命中。
【问题讨论】:
标签: mongodb