【问题标题】:MongoDB heavy read,relatively low writes, small operations performanceMongoDB重读,相对低写,小操作性能
【发布时间】:2013-02-26 14:34:02
【问题描述】:

我正在构建一个应用程序,其中我将拥有无模式对象。因此使用 mongoDB 而不是 mysql 是有意义的,因为 mysql 将涉及多个表查找来组装一个对象。我希望我的对象体积小。 我只是对 MongoDB 在这些任务中的表现有几个问题

1-) 仅基于主 ID 查找的大量阅读:所以我不会使用任何辅助的“where”语句,只查找给定文档 ID 数组(当然还有文档的主索引)键)。

2-) 为新条目写作:我会将每个新条目写成一个文档。 (不要指望这会很重)。

3-) 对现有文档的小操作:增加嵌套在文档中的整数,或检查嵌套在文档中的数组中是否存在值,向列表中添加新条目等。

根据您的知识或经验,mongoDB 将如何执行这些任务?

提前致谢。

有人告诉我这个问题含糊不清,我不知道为什么。我在问 mongoDB 设计用于处理这些操作的一般情况如何。

【问题讨论】:

  • 在“一般”情况下,MongoDB 可以很好地处理它们。
  • 一般来说,是的,MongoDB 会杀死这些东西(以一种好的方式)——您可以通过 more 了解预期的文档大小、集合大小(文档计数,即),读/写频率等,甚至是您将在 MongoDB 周围使用的语言(以及驱动程序) - 可能我们中的许多人可以提供更具体的经验,但仅基于您问题中的具体情况
  • MongoDB 将很好地处理这种情况。也就是说,您需要确保有足够的 RAM 来将工作集保存在内存中(这意味着您最常访问的记录驻留在内存中,以便快速访问)。有关工作集的更多信息,请参阅以下链接:*.com/questions/6453584/…
  • 我假设 MongoDB 会根据查询频率处理工作集,比如在 mysql 中缓存?

标签: mysql mongodb performance nosql


【解决方案1】:

有关工作集(以及一般的内存映射机制)的信息,请参阅http://docs.mongodb.org/manual/faq/storage/#what-is-the-working-set 的常见问题解答

关于如何有效设置 MongoDB 的另一个有用信息来源是 http://info.10gen.com/rs/10gen/images/10gen-MongoDB_Operations_Best_Practices.pdf

这有帮助吗?

干杯

罗纳德

【讨论】: